升学期逻辑优化方案

升学期是在每个学年的第二学期,系统可自动沿用学校的第一学期数据。

一、当前逻辑

1、当前情况:


1、业务中台中默认不对基础数据进行学年学期的划分
2、系统缺少升学期的完善功能

2、逻辑流程

当前生学期的逻辑实际上是对数据关系迁移,主要进行以下数据的迁移

  • 当前学年学期的 班级年级数据学生数据 复制到 班级年级历史表学生信息历史列表
  • 新增新的学年学期

select  * from sj_zxxx_nj_bj_history where task_id ='2024202501'

 insert into sj_zxxx_nj_bj_history (union_id,xn,xqm,nj_id,nj,njmc,njbc,xxdm,xxbxlxm,xxmc,xqdm,xqmc,task_id,bj_id,bh,bj,xzbh,bjbc,bynf,rxnf,xxxh,`type`)
select bj.union_id, '2024-2025','01',nj.id,nj.nj,dict.mc,nj.njbc,xx.xxdm,xx.xxbxlxm,xx.xxmc,xq.xxdm ,xq.xqmc,'2024202501', bj.id,bj.bh,bj.bj ,bj.xzbh ,bj.bjbc ,nj.bynf ,nj.njmc,xx.xxxh ,2
        from sj_zxxx_bjsjzlb bj
        left join sj_zxxx_njsjzlb nj on bj.njsjzlb_id  = nj.id
        left join t_dict_code_standard dict on dict.dm = nj.nj
        left join sj_zxxx_xxjbsjlb xx on xx.xxdm = bj.jgh
        left join sj_zxxx_xqjbsjzlb xq on xq.xxdm = bj.dept_id
        where 1=1
        and nj.is_delete =0 and bj.is_delete =0 and xq.is_delete =0 and xx.is_delete =0 and dict.dict_type ='njsjzlb' ;

select  * from sj_zxxs_xsjbsjzlb_history where task_id ='2024202501'

INSERT INTO sj_zxxs_xsjbsjzlb_history (union_id,
       xm, ywxm, xmpy, cym, xbm, csrq, csdm, jg, mzm, gjdqm, grbsm, sfzjlxm, sfzjh, hyzkm, gatqwm, zzmmm, jkzkm, xyzjm, xxm,
        zp, sfzjyxq, dszybz, rxny,xslbm, xzz, hkszd, hkxzm, sfldrk, tc, lxdh, txdz, yzbm, dzxx, zydz, xjh,
        sfwjry, sfge, sflshyfzn, sflset, sfwlwgryzn, csdd, fqxm, fqgzdw, fqlxdh, fqsfzjh, fqsfjhr, mqxm, mqgzdw, mqlxdh, mqsfzjh,
        mqsfjhr, byxx, dqdm, jdfs, rxfs, sfbdsy, sfjsxqjy, syd, xjszxx, xsly,task_id,xsid, jgh,njsjzlb_id,nj,bjsjzlb_id,bh
        )
SELECT distinct jg.union_id, xm, ywxm, xmpy, cym, xbm, csrq, csdm, jg, mzm, gjdqm, grbsm, sfzjlxm, sfzjh, hyzkm, gatqwm, zzmmm, jkzkm, xyzjm, xxm,
        zp, sfzjyxq, dszybz, rxny,xslbm, xzz, hkszd, hkxzm, sfldrk, tc, lxdh, txdz, yzbm, dzxx, zydz, xjh,
        sfwjry, sfge, sflshyfzn, sflset, sfwlwgryzn, csdd, fqxm, fqgzdw, fqlxdh, fqsfzjh, fqsfjhr, mqxm, mqgzdw, mqlxdh, mqsfzjh,
        mqsfjhr, byxx, dqdm, jdfs, rxfs, sfbdsy, sfjsxqjy, syd, xjszxx, xsly, '2024202501', xs.id,xs.jgh,nj.id,nj.nj,bj.id,bj.bh
from sj_zxxs_xsjbsjzlb xs
        INNER JOIN sj_zxxs_xsjgsjzlb jg on xs.id = jg.xs_id
        inner join t_org_tree ot on ot.org_id = jg.bj_org_id
        inner join sj_zxxx_bjsjzlb bj on ot.source_value = cast(bj.id as char) and ot.org_type = 'node_class'
        left join sj_zxxx_njsjzlb nj on nj.nj = bj.nj  and bj.dept_id = nj.jgh;

一、优化方案

1、方案描述:

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

2、数据库设计:

  • 升学期计划表
CREATE TABLE `t_plan_sxqjh` (
    `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:下学期)',
    `sxqjh` varchar(255) NOT NULL COMMENT '升学期计划, 2024-2025-02',
    `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】
    • 升学期计划列表
    • 升学期计划重试
    • 升学期计划异常详情
  • 升学期计划定时任务及逻辑【1d】
  • 功能测试【0.5d】
作者:杭州天音  创建时间:2025-02-14 09:50
最后编辑:杭州天音  更新时间:2025-06-09 11:42