Browse Source

缴费项目优化

zouxuan 3 years ago
parent
commit
4cfaf188a6

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -467,4 +467,14 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      */
     List<Map<Integer, String>> queryNormalGroupName(@Param("studentIds") List<Integer> studentIds);
+
+    /**
+    * @description: 乐团剩余时长未排课
+     * @param organIds
+     * @param tenantId
+    * @return java.util.List<java.lang.String>
+    * @author zx
+    * @date 2022/3/3 15:15 
+    */
+    List<String> queryHasSubCourseTimes(@Param("organIds") String organIds, @Param("tenantId") Integer tenantId);
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -30,6 +30,7 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     COURSE_TIME_ERROR("COURSE_TIME_ERROR", "课程时间安排异常"),
     TEACHER_LEAVE("TEACHER_LEAVE", "老师请假"),
     TEACHER_EXPECT_SALARY_BE_LOW("TEACHER_EXPECT_SALARY_BE_LOW", "预计课酬较低"),
+    MUSIC_GROUP_HAS_COURSE_TIMES("MUSIC_GROUP_HAS_COURSE_TIMES", "乐团剩余时长未排课"),
     INSPECTION_ITEM("INSPECTION_ITEM", "乐团巡查任务未计划"),
     INSPECTION_ITEM_PLAN("INSPECTION_ITEM_PLAN", "乐团巡查任务未提交"),
     STUDENT_VISIT("STUDENT_VISIT", "回访任务未完成"),

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

@@ -53,6 +53,17 @@ public class MusicGroupQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "维修技师")
     private Integer repairUserId;
 
+    @ApiModelProperty(value = "有剩余未排课时长(当缴费项目结束3个月后,该缴费项目中的学员剩余时长仍未排课,则提醒该事项)")
+    private boolean hasSubCourseTimes = false;
+
+    public boolean getHasSubCourseTimes() {
+        return hasSubCourseTimes;
+    }
+
+    public void setHasSubCourseTimes(boolean hasSubCourseTimes) {
+        this.hasSubCourseTimes = hasSubCourseTimes;
+    }
+
     public Integer getRepairUserId() {
         return repairUserId;
     }

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

@@ -1060,6 +1060,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		infoDto1.setNum2(musicGroupPerformances.stream().map(e -> e.getId()).collect(Collectors.toSet()).size());
 		infoDto1.setDesc(IndexErrorType.MUSIC_GROUP_PERFORMANCE.getMsg());
 		result.add(infoDto1);
+
+		//乐团剩余时长未排课
+		List<String> musicGroupIds = musicGroupDao.queryHasSubCourseTimes(organIds,tenantId);
+		result.add(new IndexErrInfoDto(IndexErrorType.MUSIC_GROUP_HAS_COURSE_TIMES, IndexErrorType.MUSIC_GROUP_HAS_COURSE_TIMES.getMsg(),musicGroupIds.size(), null));
 		return result;
 	}
 

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -3073,8 +3073,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (sysUser == null) {
             throw new BizException("获取用户信息失败");
         }
-        PageInfo<MusicGroup> musicGroupPageInfo;
-        musicGroupPageInfo = queryPage(queryInfo);
+        //查询有剩余排课时长的乐团
+        if(queryInfo.getHasSubCourseTimes()){
+            List<String> musicGroupIds = musicGroupDao.queryHasSubCourseTimes(queryInfo.getOrganId(),queryInfo.getTenantId());
+            queryInfo.setMusicGroupIds(musicGroupIds);
+        }
+        PageInfo<MusicGroup> musicGroupPageInfo = queryPage(queryInfo);
         List<MusicGroup> musicGroupList = musicGroupPageInfo.getRows();
 
         if (musicGroupList == null || musicGroupList.size() == 0) {

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -997,4 +997,16 @@
         </foreach>
         GROUP BY sr.user_id_
     </select>
+    <select id="queryHasSubCourseTimes" resultType="java.lang.String">
+        SELECT DISTINCT mgpc.music_group_id_ FROM music_group_payment_student_course_detail mgpscd
+        LEFT JOIN music_group_payment_calender mgpc ON mgpscd.music_group_payment_calender_id_ = mgpc.id_
+        WHERE mgpc.status_ = 'OVER' AND DATEDIFF(NOW(),mgpc.deadline_payment_date_) > 90
+        AND mgpscd.used_course_minutes_ = 0
+        <if test="tenantId != null">
+            AND mgpc.tenant_id_ = #{tenantId}
+        </if>
+        <if test="organIds != null and organIds != ''">
+            AND FIND_IN_SET(mgpc.organ_id_,#{organIds})
+        </if>
+    </select>
 </mapper>