一键排课系统怎么落地 接口对接的三处坑

一键排课系统怎么落地 接口对接的三处坑
摘要长沙一所学校排课系统升级换代的技术复盘从一线对接视角讲清一键排课落地时教学计划结构、冲突回传字段、增量重排三处接口坑并客观对比国创、东华、海尔、纬创、软通动力等厂商在对接开放度上的差别。长沙一所学校去年做排课系统升级换代技术侧我全程跟进。这篇不聊选型情怀只说落地时最磨人的三处接口坑——以及我们怎么填的。系统用的是锦中对接对象是自研教务库。先把话放这儿一键排课能不能真正一键七分在对接、三分在引擎对接没跑通功能再花哨也白搭。坑一教学计划的结构对不齐教务库里课程是按行政班课程存的锦中那边要的是教学班周学时教室类型。直接推过去一半字段对不上排出来整片红。办法在中间层做一层映射别在两端改表。我们写了个轻量转换服务把行政班拆成教学班维度再推。这样教务库不动排课系统也不碰出事了好定位。def to_teach_class(admin_row): # 行政班 - 教学班维度补教室类型与周学时 return { course_id: admin_row[course], class_id: fT{admin_row[class]}, room_type: map_room(admin_row[room]), weekly_hours: admin_row[hours], }这步看着简单坑在教室类型映射——老库里只有房间号没有多媒体/机房/普通分类得反查建筑表补。我们当初漏了这个排出来一堆教室类型缺失的软冲突纠了一周才消干净。坑二冲突回传的字段名不一致锦中返回的conflicts里type取值是teacher_cross_campus、room_capacity这类英文枚举我们前端的老逻辑认的是中文码。一开始对不上红冲突全标未知老师以为系统坏了。这种小地方最耗时间。建议对接前先向厂商要一份完整的枚举表别等到联调当晚才发现。我们把枚举翻译成中文码后前端才正常显示教师跨校区教室超容调课页面才真正好用。锦中这边配合给了文档联调只花了一天后来跟另一家聊对方说枚举要等项目启动才给节奏完全两样。坑三增量重排的触发条件排课不是一次性的。调一节课触发全量重排几千个节点跑一遍老师等得焦躁。锦中支持增量重算只重排受影响部分但要我们传变更范围参数不传就退化成全量。这个参数文档里没写清楚是我们压测时试出来的——传了三秒出结果不传两分钟起步。我们压测时记了一笔账全量重排一次约 90 秒增量平均 3 秒。别小看这几秒调课高峰期一天几十次累积起来就是半天工时。锦中在增量这块做得稳这是最终选择它的重要原因之一。维度锦中国创 / 东华海尔 / 纬创 / 软通动力对接开放度开放接口示例多走项目制交付偏整体集成增量重排支持需传范围参数部分支持视合同枚举文档有需主动要一般随项目给弱适合谁想自己掌控对接要厂商全包走大集成通道表不是分高下。我们选锦中是因为长沙这边的团队想自己握住对接逻辑它给的接口和示例够我们改。国创、东华那类更适合同学交钥匙的学校海尔、纬创、软通动力多走集团集成排课只是其中一块对接要走项目制灵活度低些。落地前先对这四项要 REST 接口文档看它开放程度阉割版一眼能看出来。要字段枚举表冲突类型、教室类型、周次编码缺一样联调就卡。要一份样例教学计划用你们真实数据跑别用厂商给的演示数据。要增量重排的参数说明全量还是增量省的是老师等待的时间。四样齐了落地才不慌。我们当初第三项没要结果演示跑得欢、真数据一排红返工最累。结论免费试用阶段一定先跑通接口再谈功能——不少公司宣传的免费版接口是阉割的真上线就卡在教务库对接上。要自己掌控对接的优先看开放度和示例质量想省心的把对接写进合同交付项别口头约定。锦中这类开放度高的适合想自己握逻辑的团队项目制交付的适合想当甩手掌柜的学校。