毕业逻辑优化方案

毕业,是把六年级学生的数据迁移到历史数据表的过程。这个过程会复制原年级的业务数据到历史表、删除原年级数据。

注意:先毕业,后升年级

一、当前逻辑

1、当前情况:


1、有自动毕业的功能,但是是对整个平台内的所有学校一次性的进行毕业操作逻辑处理,存在内存消耗高,程序容易奔溃的情况。
2、不能按校单独时间、单独逻辑进行处理

2、逻辑流程

1、迁移毕业年级数据
  • 1、原数据表 sj_zxxx_njsjzlb、sj_zxxx_bjsjzlb、sj_zxxs_xsjbsjzlb、sj_zxxs_xsjgsjzlb 移动到历史表 sj_zxxx_bjsjzlb_history、sj_zxxs_xsjbsjzlb_history、sj_zxxx_nj_bj_history[主]、sj_zxxx_nj_history
  • 2、组织机构 t_org_tree、t_org_tree_user 迁移到 t_org_tree_history、t_org_tree_user_history
2、毕业年级数据清除
  • 1、删除原表中的数据 sj_zxxx_njsjzlb、sj_zxxx_bjsjzlb、sj_zxxs_xsjbsjzlb、sj_zxxs_xsjgsjzlb 、学生身份表 、组织机构 t_org_tree、t_org_tree_user

一、优化方案

1、方案描述:

1.1、交互功能
  • 学校-年级-班级 为最小单位,在第2个学期时间结束时,系统自动创建 毕业计划
  • 毕业计划功能,包含 运维视角学校视角 两个功能
  • 运维视角 下的 毕业计划 功能,有 待毕业年级学校 列表
    • 学校列表 中,需要包含,学校、年级、班级、毕业计划、执行状态、执行进度、操作[重试],异常时候,点击执行状态可查看异常信息
    • 学校列表 展开,可展示 年级-班级 的子列表
    • 运维人员(运维专员、客户经理),可重新执行 年级-班级 失败的 毕业计划
  • 学校视角 下的 毕业计划 功能,有 学校为单位的 待毕业年级 整体进度图表 和 年级-班级毕业计划 列表
    • 年级-班级 列表中,需要包含,年级、班级、毕业计划、执行状态、执行进度、操作[重试],异常时候,点击执行状态可查看异常信息
    • 运维人员(运维专员、客户经理),可重新执行 年级-班级 失败的 毕业计划
    • 列表中,需要包含,学校、年级、班级、毕业计划、执行状态、异常详情、操作[重试]
1.2、逻辑流程
1.3、业务流程

2、数据库设计:

  • 毕业计划表
CREATE TABLE `t_plan_byjh` (
    `id` varchar(50) NOT NULL COMMENT '主键ID',
    `xxdm` varchar(12) NOT NULL COMMENT '学校代码(指由教育部按照国家标准及编码规则编制,赋予每个学校(机构)在全国范围内唯一的、始终不变的识别标识码)',
    `xqbm` varchar(14) NOT NULL COMMENT '校区编码(学校代码 + 校区号)',
    `njdm` varchar(2) NOT NULL COMMENT '年级代码(JY/T 1002 JCTB010401)',
    `bjdm` varchar(50) NOT NULL COMMENT '班级名称,例:一年级(01)班',
    `xndm` varchar(9) NOT NULL COMMENT '学年代码,例:2024-2025',
    `xqdm` varchar(2) NOT NULL COMMENT '学期代码(01:上学期;02:下学期)',
    `byjh` varchar(255) NOT NULL COMMENT '毕业计划',
    `zxzt` int(2) NOT NULL COMMENT '执行状态(0-未执行,1-执行中,2-已完成,3-已取消,4-异常)',
    `zxjd` decimal(3,1) NOT NULL COMMENT '执行进度, 0-100',
    `create_time` datetime NOT NULL COMMENT '创建时间(数据首次创建时间)',
    `update_time` datetime NOT NULL COMMENT '更新时间(数据最后在数据库更中更新的时间)',
    `create_by` bigint(20) null comment '创建人',
    `update_by` bigint(20) null comment '修改人',
    `deleted` tinyint(1) default 0 null comment '删除标识 1-已删除 0-未删除',
    PRIMARY KEY (`id`),
    KEY `idx_full` (`xxdm`, `njdm`, `bjdm`, `xndm`, `xqdm`, `sxqjh`, `zxzt`, `zxjd`) USING BTREE
) DEFAULT CHARSET = utf8mb4 COMMENT = '毕业计划表';

3、任务拆分:

  • 交互功能设计【0.5d】
  • 交互功能UI布局【0.5d】
  • 毕业计划任务管理功能【0.5d】
    • 毕业级计划列表
    • 毕业级计划重试
    • 毕业级计划异常详情
  • 毕业计划定时任务及逻辑【2d】
  • 功能测试【0.5d】
作者:杭州天音  创建时间:2024-11-28 11:14
最后编辑:杭州天音  更新时间:2025-06-09 11:42