Interface PlanCourseGroupCommonDao

All Known Implementing Classes:
PlanCourseGroupCommonDaoHibernate

public interface PlanCourseGroupCommonDao
  • Method Details

    • saveOrUpdateCourseGroup

      void saveOrUpdateCourseGroup(CourseGroup group)
      保存/更新培养计划课程组,但是仅限于课程组的父课程类别没有变动过的情况
      会重算课程组和整个计划的学分
      Parameters:
      group -
      See Also:
      • PlanCourseGroupCommonDao.updateGroupTreeCredits
      • PlanCommonDao.statPlanCredits
    • addCourseGroupToPlan

      @Deprecated void addCourseGroupToPlan(CourseGroup group, CoursePlan plan)
      Deprecated.
      给培养计划添加一级课程组
      会重算课程组和整个计划的学分
      Parameters:
      group - 必须是一个transient瞬态对象
      plan - 必须是一个persistent持久化对象
      See Also:
      • PlanCourseGroupCommonDao.updateGroupTreeCredits
      • PlanCommonDao.statPlanCredits
    • addCourseGroupToPlan

      void addCourseGroupToPlan(CourseGroup group, CourseGroup parent, CoursePlan plan)
      给培养计划添加二级/更低级的课程组
      会重算课程组和整个计划的学分
      Parameters:
      group - 必须是一个transient瞬态对象
      parent - 必须是一个persistent持久化对象,parent课程组必须已经是plan的子课程组
      plan - 必须是一个persistent持久化对象
      See Also:
      • PlanCourseGroupCommonDao.updateGroupTreeCredits
      • PlanCommonDao.statPlanCredits
    • removeCourseGroup

      void removeCourseGroup(CourseGroup group)
      删除一个课程组,不管这个课程组处于第几层
      会重算课程组和整个计划的学分
      Parameters:
      group -
      plan -
      See Also:
      • PlanCourseGroupCommonDao.updateGroupTreeCredits
      • PlanCommonDao.statPlanCredits
    • updateCourseGroupMoveDown

      @Deprecated void updateCourseGroupMoveDown(CourseGroup courseGroup)
      Deprecated.
      将课程组下移一个位置
      Parameters:
      courseGroup -
    • updateCourseGroupMoveUp

      @Deprecated void updateCourseGroupMoveUp(CourseGroup courseGroup)
      Deprecated.
      将课程组上移一个位置
      Parameters:
      courseGroup -
    • getCourseGroupByCourseType

      CourseGroup getCourseGroupByCourseType(CourseGroup planGroup, Long planId, Integer courseTypeId)
      根据课程类别获得一个计划中的课程组
      Parameters:
      plan -
      planId -
      courseTypeId -
      Returns:
    • updateCourseGroupParent

      @Deprecated void updateCourseGroupParent(CourseGroup group, CourseGroup newParent, CoursePlan plan)
      Deprecated.
      这个方法还未实现,实现起来有难度
      将一个group的parent换成别的parent
      parent可以为null,这样一来就变成了顶级课程组
      Parameters:
      group - 必须是persisitent对象
      newParent - 必须是persisitent对象或者为null
      plan - 必须是persisitent对象
    • extractCourseInCourseGroup

      List<Course> extractCourseInCourseGroup(ExecutiveCourseGroup group, String terms)
      获得一个课程组内,属于terms学期的课程
      Parameters:
      group -
      terms -
      Returns:
    • extractPlanCourseInCourseGroup

      List<ExecutivePlanCourse> extractPlanCourseInCourseGroup(ExecutiveCourseGroup group, Set<String> terms)
      获得一个课程组内,属于terms学期的计划课程
      Parameters:
      group -
      terms -
      Returns:
    • updateGroupTreeCredits

      void updateGroupTreeCredits(CourseGroup group)
      统计从当前课程组往下(包括当前课程组)所有层级的学分要求
      采用递归统计,先从最地下开始统计,逐渐往上回溯
      统计逻辑为:
      如果是必修课程组,则将所有子组学分相加
      如果非必修课程组,则维持原学分要求,不改变
      统计学分分布
      统计课时分布
      Parameters:
      group -
    • getTopGroup

      CourseGroup getTopGroup(CourseGroup group)
      获得当前课程组的最祖先的节点,有可能直接返回自己
      Parameters:
      group -
      Returns:
    • copyCourseGroup

      CourseGroup copyCourseGroup(CourseGroup sourceCourseGroup, CourseGroup parentAttachTo, CoursePlan planAttachTo, Class<?> groupClazz, Class<?> pcClazz)
    • copyPlanCourse

      PlanCourse copyPlanCourse(PlanCourse sourcePlanCourse, CourseGroup courseGroupAttachTo, Class<?> pcClazz)