| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
							- using System;
 
- using System.Collections.Generic;
 
- namespace mxdemo.Mind
 
- {
 
-     #region model
 
-     public class FacultyForm
 
-     {
 
-         public int subjectId;   // 这个想想「班会、体育、自习」怎么处理?
 
-         public string subjectName; // 名称
 
-         public bool isFixed; // 固定师资,用以区分6门合格考与等级考学科,非固定科目需要填写合格考与等级考
 
-         public bool isOffical; // 正式科目,9科为正式科目,非正式科目提供的校验不一样
 
-         public int classesCountPrev; // 周课时数-分班前-仅参考用
 
-         public int teacherCount; // 单科老师数量
 
-         public int teacherClassesCount; // 单科老师周课时数
 
-         public int classesCount; // 单科总课时数,前端会提供辅助计算
 
-         public int levelClassesCount; // 等级考课时数-分班后
 
-         public int qualifiedClassesCount; // 合格考课时数-分班后
 
-     }
 
-     public class FacultyResult : FacultyForm
 
-     {
 
-         public int levelClassCount; // 等级考班级数
 
-         public int qualifiedClassCount; // 合格考班级数
 
-         public int requiredClassesCount; // 所需课时
 
-         public int actualClassesCount; // 实际课时
 
-         public int missingClassesCount; // 缺少课时,正数表示缺的,负数表示超的
 
-         public int missingTeacherCount; // 缺少老师,正负同上
 
-     }
 
-     public class GroupSetting
 
-     {
 
-         // 略,延用之前的结构内容
 
-     }
 
-     public class GroupModel
 
-     {
 
-         // 后台自己设置标识,前端会原样返回,前端展示与操作只会用到索引
 
-         public string groupIds;
 
-         public List<GroupSetting> roundGroups;
 
-         public List<FacultyResult> faculties;
 
-     }
 
-     public class ScoreImportConfig // 需要调整结构
 
-     {
 
-         #region 不变部分
 
-         //      {
 
-         //"params": {},
 
-         //"roundId": 14,
 
-         //"schoolId": 31,
 
-         //"year": 2021,
 
-         //"name": "第1次选科",
 
-         //"beginTime": "2022-03-05",
 
-         //"endTime": "2022-03-20",
 
-         //"state": "1",
 
-         //"importWeight":[]
 
-         #endregion
 
-         #region 变更部分
 
-         // 新增模型列表
 
-         public List<GroupModel> groupModels;
 
-         // 选择其中1个模型
 
-         public int activeGroupModelIndex; // 构想的是传索引,因为前端会做删除等调整,而且新建时也可能同时创建多个引用,此时无ID能够做出区分
 
-         // 选志愿的数量,默认为1
 
-         public int preferenceCount = 1;
 
-         #endregion
 
-         #region 新增控制配置
 
-         public bool rankInvisible; // 排名不可见,默认false: 排名可见
 
-         public bool scoreInvisible; // 分数不可见,默认false: 分数可见
 
-         public bool enableEsign;  // 开启电子签名,默认false: 不需要
 
-         public bool enablePaperSign; // 开启电子签名的情况下,是否需要纸质签名(促进学生使用班牌),默认false: 不需要
 
-         #endregion
 
-     }
 
-     #endregion
 
-     public interface ISelectedScoreImport
 
-     {
 
-         // ScoreImportConfig的结构有变化见上面region
 
-         ScoreImportConfig getScoreImportConfig(int roundId);
 
-         /// <summary>
 
-         /// 生成空的师资表格,在校长全部重新填写的时候调用。如果是从已完成的模型复制,则不会调用,前端会自行处理
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         List<FacultyResult> generateFaculties();
 
-         // 计算师资匹配结果
 
-         // 构想:全量传数据,但后台只挑需要的groupModels[targetIndex]进行计算,计算完毕标记为completed=true
 
-         // 计算结束,需要标记出groupModels中,completed=true的模型,最优解为isBest=true
 
-         // 最优解:faculties.sum(f => Math.Abs(f.missingTeacherCount)) 总和最小的GroupModel为最优
 
-         ScoreImportConfig calculateFaculty(ScoreImportConfig round, int groupModelIndex);
 
-         void saveScoreImportConfig({ round: ScoreImportConfig }); // config结构变了,保存也要注意
 
-         void queryScoreImportDetails({ round: ScoreImportConfig, groupModelIndex: int }); // config结构变了,查询时要指定哪个模型
 
-     }
 
- }
 
 
  |