通过AI比对原操作文档,生成系统功能完善方案,根据方案进行增补,完善从学期新增到最终的排课功能
This commit is contained in:
+77
@@ -0,0 +1,77 @@
|
||||
package com.roomroot.jwgl.vo.allocation;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 教学配当 - 单条课程任务的配当行(含铺学时结果)。
|
||||
*
|
||||
* <p>铺学时结果只是「粗约束建议」,不写实施课程表(SSKCB),见方案阶段 3「明确不做」。</p>
|
||||
*/
|
||||
@Data
|
||||
public class AllocationTaskVO {
|
||||
|
||||
/** 任务编号 */
|
||||
private String bh;
|
||||
|
||||
/** 课编号 */
|
||||
private String kbh;
|
||||
|
||||
/** 课程名(简称优先,缺省取课名称) */
|
||||
private String kcmc;
|
||||
|
||||
/** 课类型 */
|
||||
private String klx;
|
||||
|
||||
/** 学时 */
|
||||
private Integer xs;
|
||||
|
||||
/** 周课时 */
|
||||
private Integer zks;
|
||||
|
||||
/** 配档序号(优选序数) */
|
||||
private Integer pdxh;
|
||||
|
||||
/** 配档起始周 */
|
||||
private Integer pdqsz;
|
||||
|
||||
/** 配档按周:0=连排(单科独进) 1=按周(非连排) */
|
||||
private Integer pdaz;
|
||||
|
||||
/** 配档占正课时间 */
|
||||
private Integer pdzzksj;
|
||||
|
||||
/** 配档编组 */
|
||||
private Integer pdbz;
|
||||
|
||||
/** 教研室代号 */
|
||||
private String jysdh;
|
||||
|
||||
/** 计算起始周(铺学时结果) */
|
||||
private Integer startWeek;
|
||||
|
||||
/** 计算结束周(铺学时结果) */
|
||||
private Integer endWeek;
|
||||
|
||||
/** 溢出学时(超出学期周数没铺完的部分) */
|
||||
private Integer overflowHours;
|
||||
|
||||
/** 每周铺学时(weekNo -> 学时),仅含 >0 的周 */
|
||||
private List<WeekHours> distribution = new ArrayList<>();
|
||||
|
||||
@Data
|
||||
public static class WeekHours {
|
||||
private Integer week;
|
||||
private Integer hours;
|
||||
|
||||
public WeekHours() {
|
||||
}
|
||||
|
||||
public WeekHours(Integer week, Integer hours) {
|
||||
this.week = week;
|
||||
this.hours = hours;
|
||||
}
|
||||
}
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package com.roomroot.jwgl.vo.allocation;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 教学配当编辑器 - 打开视图。
|
||||
*/
|
||||
@Data
|
||||
public class AllocationViewVO {
|
||||
|
||||
/** 班次学期编号 */
|
||||
private String xydxqbh;
|
||||
|
||||
/** 学员队编号 */
|
||||
private String xydbh;
|
||||
|
||||
/** 班次(学员队)名称 */
|
||||
private String xydmc;
|
||||
|
||||
/** 学期代号(6 位) */
|
||||
private Integer ndCode;
|
||||
|
||||
/** 学期起 */
|
||||
private LocalDate kxrq;
|
||||
|
||||
/** 学期止 */
|
||||
private LocalDate jsrq;
|
||||
|
||||
/** 总周数 */
|
||||
private Integer totalWeeks;
|
||||
|
||||
/** 是否冻结(已发布/已结束的教学任务,只读) */
|
||||
private Boolean frozen;
|
||||
|
||||
/** 周视图 */
|
||||
private List<AllocationWeekVO> weeks = new ArrayList<>();
|
||||
|
||||
/** 任务配当行(已铺学时) */
|
||||
private List<AllocationTaskVO> tasks = new ArrayList<>();
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.roomroot.jwgl.vo.allocation;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 教学配当 - 周视图行。
|
||||
*
|
||||
* <p>「每周可排正课」口径:该周内 可排课=1 且 正课=1 的时间格数 × 2 学时(双节次一格按 2 学时计)。
|
||||
* 数据源优先级:班历(假期表)> 校历(学期校历表)> 默认值(周一~五 1-2/3-4/5-6 共 15 格 = 30 学时)。
|
||||
* 班历已继承校历并允许人工补正课,故直接用班历即等价于「校历正课 − 不可排课 + 班历补正课」。</p>
|
||||
*/
|
||||
@Data
|
||||
public class AllocationWeekVO {
|
||||
|
||||
/** 周次(从 1 起) */
|
||||
private Integer weekNo;
|
||||
|
||||
/** 周起(周一) */
|
||||
private LocalDate startDate;
|
||||
|
||||
/** 周止(周日) */
|
||||
private LocalDate endDate;
|
||||
|
||||
/** 该周可排正课学时 */
|
||||
private Integer availableHours;
|
||||
|
||||
/** 容量来源:class-班历 / school-校历 / default-默认 */
|
||||
private String source;
|
||||
}
|
||||
+2
-1
@@ -34,7 +34,8 @@ public class SemesterInitVO {
|
||||
private Boolean halfYear;
|
||||
|
||||
/**
|
||||
* 默认/推断的学期第次
|
||||
* 默认/推断的学期第次(学年内学期类别:1 春季 / 2 夏季 / 3 秋季;
|
||||
* 不是「专业总第几学期」,人培/专业教学计划表的学期第次才是专业总学期口径)
|
||||
*/
|
||||
private Integer xqdc;
|
||||
|
||||
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package com.roomroot.jwgl.vo.scheduling;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 实施排课窗口视图(阶段 5.3):班次头 + 课程列表 + 周次×星期×节次 格子。
|
||||
*/
|
||||
@Data
|
||||
public class SchedulingViewVO {
|
||||
|
||||
private String xydxqbh;
|
||||
|
||||
private String xydmc;
|
||||
|
||||
/** 班次专用教室编号 */
|
||||
private String zyjsbh;
|
||||
|
||||
/** 6 位学期代号 */
|
||||
private Integer ndCode;
|
||||
|
||||
private LocalDate kxrq;
|
||||
|
||||
private LocalDate jsrq;
|
||||
|
||||
private Integer totalWeeks;
|
||||
|
||||
/** 课程列表(已排满 full=true,前端标绿) */
|
||||
private List<Course> courses = new ArrayList<>();
|
||||
|
||||
/** 时间区:按周切分,格子叠加校历/班历不可排与已排课次 */
|
||||
private List<Week> weeks = new ArrayList<>();
|
||||
|
||||
@Data
|
||||
public static class Course {
|
||||
private String sskcbh;
|
||||
private String kbh;
|
||||
private String kcmc;
|
||||
private String klx;
|
||||
private Integer xs;
|
||||
private Integer zks;
|
||||
private String jybh;
|
||||
private String jyxm;
|
||||
private String jsbh;
|
||||
private String jsmc;
|
||||
/** 已排学时(每节 2 学时 + 节次调节) */
|
||||
private Integer scheduledHours;
|
||||
/** 是否已排满(scheduledHours >= xs) */
|
||||
private Boolean full;
|
||||
/** 当前用户是否可编辑该课程 */
|
||||
private Boolean editable;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class Week {
|
||||
private Integer weekNo;
|
||||
private LocalDate startDate;
|
||||
private LocalDate endDate;
|
||||
private List<Day> days = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class Day {
|
||||
private LocalDate date;
|
||||
private Integer weekday;
|
||||
/** 该日不可排原因(校历整日/班历整日,节次级见格子) */
|
||||
private String unavailableReason;
|
||||
private List<Cell> cells = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class Cell {
|
||||
private Integer jc;
|
||||
/** 硬冲突:不可排课 */
|
||||
private Boolean unavailable;
|
||||
/** 硬冲突原因(不可排课来源:校历/班历等) */
|
||||
private String reason;
|
||||
/** 软提示(非正课 / 配当周次不符) */
|
||||
private String warning;
|
||||
private List<Lesson> lessons = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class Lesson {
|
||||
private String bh;
|
||||
private String sskcbh;
|
||||
private String kcmc;
|
||||
private String jxnr;
|
||||
private String jxff;
|
||||
private Integer jcdj;
|
||||
private String jyxm;
|
||||
private String jsmc;
|
||||
private String ycxx;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.roomroot.jwgl.vo.taskbook;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 教研室任务书填报列表行(阶段 4)。
|
||||
*
|
||||
* <p>一行 = 一条课程任务(学员队任务表)。列表排序:课程 → 责任教员 → 课次;
|
||||
* 返回 合班分组号(bz2,0=未合班)供前端同色连显。</p>
|
||||
*/
|
||||
@Data
|
||||
public class TaskBookRowVO {
|
||||
|
||||
/** 课程任务编号(学员队任务表.编号) */
|
||||
private String bh;
|
||||
|
||||
/** 学员队学期编号 */
|
||||
private String xydxqbh;
|
||||
|
||||
/** 课编号(科目) */
|
||||
private String kbh;
|
||||
|
||||
/** 课程名称(简称优先,缺省取课表课名称) */
|
||||
private String kcmc;
|
||||
|
||||
/** 课类型 */
|
||||
private String klx;
|
||||
|
||||
/** 学时 */
|
||||
private Integer xs;
|
||||
|
||||
/** 周课时 */
|
||||
private Integer zks;
|
||||
|
||||
/** 成绩分制 */
|
||||
private String cjfz;
|
||||
|
||||
/** 学员队编号 */
|
||||
private String xydbh;
|
||||
|
||||
/** 学员队名称 */
|
||||
private String xydmc;
|
||||
|
||||
/** 责任教员编号 */
|
||||
private String jybh;
|
||||
|
||||
/** 责任教员姓名 */
|
||||
private String jyxm;
|
||||
|
||||
/** 场地(教室编号) */
|
||||
private String jsbh;
|
||||
|
||||
/** 场地名称 */
|
||||
private String jsmc;
|
||||
|
||||
/** 课次序号 */
|
||||
private Integer kcxh;
|
||||
|
||||
/** 合班分组号(0=未合班) */
|
||||
private Integer bz2;
|
||||
|
||||
/** 教研室代号 */
|
||||
private String jysdh;
|
||||
|
||||
/** 教研室名称 */
|
||||
private String jysmc;
|
||||
|
||||
/** 教研室计划教员编号 */
|
||||
private String jysjhjybh;
|
||||
|
||||
/** 教研室计划教员姓名 */
|
||||
private String jysjhjyxm;
|
||||
|
||||
/** 排课建议(教研室计划备注) */
|
||||
private String jysjhbz;
|
||||
|
||||
/** 是否只读(教学任务未发布或已结束) */
|
||||
private Boolean frozen;
|
||||
}
|
||||
+6
@@ -132,4 +132,10 @@ public class TimetableConflictDetailVO {
|
||||
* 统一从学员队表的「所属单位」列取值(WM_CONCAT 去重)。
|
||||
*/
|
||||
private String responsibleDept;
|
||||
|
||||
/**
|
||||
* 冲突等级(阶段 5.1):hard-硬冲突(双占 / 三类历不可排,深红);soft-软提示(橙)。
|
||||
* 本检查器的维度全部为硬冲突;软提示(配当周次不符、非正课)由排课窗实时计算。
|
||||
*/
|
||||
private String level;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user