Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java
Joburgess 4 years ago
parent
commit
067d30f762

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

@@ -102,15 +102,15 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
                                                 @Param("groupType")GroupType groupType);
 
 
-    int countLessThenThreeClassGroupNum(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
-    List<String> getLessThenThreeMusicGroup(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
+    int countLessThenThreeClassGroupNum(@Param("organIds") Set<Integer> organIds);
+    List<String> getLessThenThreeMusicGroup(@Param("organIds") Set<Integer> organIds);
 
     List<Long> queryErrInspection(@Param("organIds") Set<Integer> organIds);
 
-    int countNoPaymentStudentNum(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
-    List<String> getNoPaymentMusicGroup(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
+    int countNoPaymentStudentNum(@Param("organIds") Set<Integer> organIds);
+    List<String> getNoPaymentMusicGroup(@Param("organIds") Set<Integer> organIds);
 
-    List<Long> queryApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
+    List<Long> queryApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds);
 
     List<Long> queryStudentAttendanceInfo(@Param("organIds") Set<Integer> organIds,
                                           @Param("type") String type, @Param("firstDayOfMonth") Date firstDayOfMonth, @Param("startTime") String startTime);
@@ -135,7 +135,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @param organIdsStr
      * @return
      */
-    List<Long> queryTeacherLeave(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
+    List<Long> queryTeacherLeave(@Param("organIdsStr") String organIdsStr);
 
     /**
      * 获取预计课酬偏低的老师编号

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java

@@ -236,4 +236,11 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	 * @return
 	 */
 	List<Map<Integer, BigDecimal>> queryNoPaymentTotalAmount(String musicGroupId);
+
+	/**
+	 * 获取乐团有欠费的学员列表
+	 * @param musicGroupId
+	 * @return
+	 */
+	List<Integer> queryNoPaymentUserIds(@Param("musicGroupId") String musicGroupId, @Param("userIds") List<Integer> userIds);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java

@@ -23,6 +23,9 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
   @ApiModelProperty(value = "是否有未开始的vip课、网管课")
   private Boolean hasCourse;
 
+  @ApiModelProperty(value = "是否欠费")
+  private Boolean oweFlag;
+
   @ApiModelProperty(value = "是否锁定")
   private Integer isLock;
 
@@ -40,6 +43,14 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
 
   private boolean isExport = false;
 
+  public Boolean getOweFlag() {
+    return oweFlag;
+  }
+
+  public void setOweFlag(Boolean oweFlag) {
+    this.oweFlag = oweFlag;
+  }
+
   public Integer getCarePackage() {
     return carePackage;
   }

+ 9 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -356,7 +356,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			one.setDesc(IndexErrorType.MUSIC_PATROL.getMsg());
 			List<IndexErrInfoDto> oneChild = new ArrayList<>();
 
-			oneChild.add(new IndexErrInfoDto(IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE, IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE.getMsg(), indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds,startTime), indexBaseMonthDataDao.getLessThenThreeMusicGroup(organIds,startTime)));
+			oneChild.add(new IndexErrInfoDto(IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE, IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE.getMsg(), indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds), indexBaseMonthDataDao.getLessThenThreeMusicGroup(organIds)));
 			List<Long> errInspection = indexBaseMonthDataDao.queryErrInspection(organIds);
 			oneChild.add(new IndexErrInfoDto(IndexErrorType.MUSIC_PATROL_ITEM, IndexErrorType.MUSIC_PATROL_ITEM.getMsg(),errInspection.size(), errInspection));
 
@@ -375,8 +375,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			List<IndexErrInfoDto> twoChild = new ArrayList<>();
 
 
-			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,startTime), indexBaseMonthDataDao.getNoPaymentMusicGroup(organIds,startTime)));
-			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,startTime);
+			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds), indexBaseMonthDataDao.getNoPaymentMusicGroup(organIds)));
+			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds);
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP, IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP.getMsg(), quitGroupNum.size(),  quitGroupNum));
 			List<Long> attendanceInfo = indexBaseMonthDataDao.queryStudentAttendanceInfo(organIds, StudentAttendanceStatusEnum.TRUANT.getCode(),firstDayOfMonth,startTime);
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.COURSE_TRUANT_STUDENT_NUM, IndexErrorType.COURSE_TRUANT_STUDENT_NUM.getMsg(), attendanceInfo.size(), attendanceInfo));
@@ -399,10 +399,11 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			List<Long> noAttendance = indexBaseMonthDataDao.getNoAttendance(organIdsStr,firstDayOfMonth,startTime);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_NOT_A_CLASS, IndexErrorType.TEACHER_NOT_A_CLASS.getMsg(), noAttendance.size(), noAttendance));
 
-			List<Long> teacherLeave = indexBaseMonthDataDao.queryTeacherLeave(organIdsStr,startTime);
+			List<Long> teacherLeave = indexBaseMonthDataDao.queryTeacherLeave(organIdsStr);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_LEAVE, IndexErrorType.TEACHER_LEAVE.getMsg(),teacherLeave.size(), teacherLeave));
 
 			String monthStr = DateUtil.format(date, DateUtil.ISO_YEAR_MONTH_FORMAT);
+			//全职未离职老师
 			List<Long> lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIdsStr,monthStr);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW, IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW.getMsg(),lowTeacherSalary.size(), lowTeacherSalary));
 
@@ -465,7 +466,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 		Date date = new Date();
 		boolean flag1 = false;
-		int countLessThenThreeClassGroupNum = indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds,startTime);
+		int countLessThenThreeClassGroupNum = indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds);
 		if(countLessThenThreeClassGroupNum > 0){
 			flag1 = true;
 		}
@@ -479,13 +480,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		boolean flag2 = false;
 		Date firstDayOfMonth = DateUtil.getFirstDayOfMonth(DateUtil.addMonths(date, -1));
 		if(!flag2){
-			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,startTime);
+			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds);
 			if(countNoPaymentStudentNum > 0){
 				flag2 = true;
 			}
 		}
 		if(!flag2){
-			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,startTime);
+			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds);
 			if(quitGroupNum.size() > 0){
 				flag2 = true;
 			}
@@ -517,7 +518,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 		}
 		if(!flag3){
-			List<Long> teacherLeave = indexBaseMonthDataDao.queryTeacherLeave(organIdsStr,startTime);
+			List<Long> teacherLeave = indexBaseMonthDataDao.queryTeacherLeave(organIdsStr);
 			if(teacherLeave.size() > 0){
 				flag3 = true;
 			}

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -431,6 +431,14 @@ public class StudentManageServiceImpl implements StudentManageService {
                 userIds.removeAll(hasCourseStudent);
             }
         }
+        if(userIds.size() > 0 && queryInfo.getOweFlag() != null){
+            List<Integer> studentIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(queryInfo.getMusicGroupId(),userIds);
+            if(queryInfo.getOweFlag()){
+                userIds = studentIds;
+            }else {
+                userIds.removeAll(studentIds);
+            }
+        }
         if(userIds.size() == 0){
             return pageInfo;
         }

+ 8 - 7
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -474,7 +474,7 @@
 		LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
 		WHERE
 		cg.type_ IN ('HIGH','HIGH_ONLINE')
-		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0 AND DATE_FORMAT( cg.create_time_, '%Y-%m-%d' ) >= #{startTime}
+		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0
 		<if test="organIds!=null and organIds.size()>0">
 			AND mg.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -494,7 +494,7 @@
 		LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
 		WHERE
 		cg.type_ IN ('HIGH','HIGH_ONLINE')
-		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0 AND DATE_FORMAT( cg.create_time_, '%Y-%m-%d' ) >= #{startTime}
+		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0
 		<if test="organIds!=null and organIds.size()>0">
 			AND mg.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -516,7 +516,7 @@
 		WHERE
 		mg.status_ = 'PROGRESS'
 		AND DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(mgpc.payment_valid_start_date_,'%Y-%m-%d')
-		AND mgpcd.payment_status_ = 'NON_PAYMENT' AND DATE_FORMAT( mgpc.create_time_, '%Y-%m-%d' ) >= #{startTime}
+		AND mgpcd.payment_status_ = 'NON_PAYMENT'
 		<if test="organIds!=null and organIds.size()>0">
 			AND mg.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -535,7 +535,7 @@
 		WHERE
 			mg.status_ = 'PROGRESS'
 			AND DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(mgpc.payment_valid_start_date_,'%Y-%m-%d')
-			AND mgpcd.payment_status_ = 'NON_PAYMENT' AND DATE_FORMAT( mgpc.create_time_, '%Y-%m-%d' ) >= #{startTime}
+			AND mgpcd.payment_status_ = 'NON_PAYMENT'
 			<if test="organIds!=null and organIds.size()>0">
 				AND mg.organ_id_ IN
 				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -548,7 +548,7 @@
 		SELECT mgq.id_ FROM music_group_quit mgq
 			LEFT JOIN music_group mg ON mgq.music_group_id_=mg.id_
 		WHERE mg.status_='PROGRESS'
-		  AND mgq.status_='PROCESSING' AND DATE_FORMAT( mgq.create_time_, '%Y-%m-%d' ) >= #{startTime}
+		  AND mgq.status_='PROCESSING'
 		<if test="organIds!=null and organIds.size()>0">
 			AND mg.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -610,14 +610,15 @@
 	<select id="queryTeacherLeave" resultType="java.lang.Long">
 		SELECT DISTINCT tlr.id_ FROM teacher_leave_record tlr
 		LEFT JOIN teacher t ON t.id_ = tlr.user_id_
-		WHERE tlr.status_ = 'ING' AND DATE_FORMAT( tlr.create_time_, '%Y-%m-%d' ) >= #{startTime}
+		WHERE tlr.status_ = 'ING'
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(t.organ_id_,#{organIdsStr})
 		</if>
 	</select>
 	<select id="queryLowTeacherSalary" resultType="java.lang.Long">
 		SELECT DISTINCT tcs.user_id_ FROM teacher_course_statistics tcs
-		WHERE DATE_FORMAT(tcs.month_,'%Y-%m') = #{monthStr} AND tcs.low_salary = 1
+		LEFT JOIN teacher t ON t.id_ = tcs.user_id_
+		WHERE t.job_nature_ = 'FULL_TIME' AND t.demission_date_ IS NULL AND DATE_FORMAT(tcs.month_,'%Y-%m') = #{monthStr} AND tcs.low_salary = 1
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(tcs.organ_id_,#{organIdsStr})
 		</if>

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -392,6 +392,20 @@
 		GROUP BY mgpcd.user_id_
 	</select>
 
+	<select id="queryNoPaymentUserIds" resultType="java.lang.Integer">
+		SELECT mgpcd.user_id_ FROM music_group_payment_calender_detail mgpcd
+		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
+		WHERE mgpc.batch_no_ IS NOT NULL AND mgpcd.payment_status_ = 'NON_PAYMENT'
+		  AND mgpc.music_group_id_ = #{musicGroupId} AND mgpc.status_ IN ('OPEN','OVER','PAID')
+		<if test="userIds != null">
+			AND mgpcd.user_id_ IN
+			<foreach collection="userIds" open="(" close=")" separator="," item="item">
+				#{item}
+			</foreach>
+		</if>
+		GROUP BY mgpcd.user_id_  HAVING SUM(mgpcd.expect_amount_) > 0
+	</select>
+
 	<update id="updateNoPaymentAndZeroPaymentStatus">
 		UPDATE music_group_payment_calender_detail SET payment_status_ = 'PAID_COMPLETED',actual_amount_ = 0,update_time_ = NOW()
 		WHERE music_group_payment_calender_id_ = #{calenderId} AND expect_amount_ = 0 AND payment_status_ = 'NON_PAYMENT'