JCDP教育培训管理系统 - 项目指南
项目版本: software.version=54
运行模式: release
所属组织: XX电子科技集团XX研究所(etms)
一、项目概述
JCDP(JCDP - 教育培训管理系统)是一个基于 Java Web 技术栈的企业内部培训管理平台,部署在 Tomcat 服务器上。系统支持完整的培训计划管理、培训实施、考试管理、问卷调研、外派培训管理等功能模块。
1.1 技术架构
| 层级 |
技术选型 |
| 后端框架 |
Java + Spring 4.3 + 自研 MVC 框架(com.etms.mvc) |
| ORM |
自研 ORM 框架(com.etms.orm) |
| 前端模板 |
FreeMarker(.ftl)+ 自研 UI 框架(CECT54.WebUI) |
| 数据库 |
MySQL(10.55.68.235:3306/etms) |
| 报表 |
FineReport 8.0(fr-*) |
| WebService |
Apache CXF(暴露 ETMSService) |
| 消息队列 |
RabbitMQ(amqp-client) |
| 主包名 |
com.etms.jcdp |
1.2 目录结构
jcdp/
├── META-INF/
│ └── MANIFEST.MF
├── WEB-INF/
│ ├── applicationContext.xml # Spring配置
│ ├── classes/
│ │ ├── com/etms/jcdp/ # Java源码编译目录
│ │ └── META-INF/
│ ├── mapping/ # SQL映射文件 (*.map.xml)
│ └── ftl/ # FreeMarker模板
├── asset/ # 静态资源(CSS/图片/字体)
└── CODE_REVIEW_GUIDE.md # 代码审查规范
二、核心功能模块
2.1 模块全景图
┌─────────────────────────────────────────────────────────────────────────┐
│ 系统管理 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │
│ │ 用户 │ │ 角色 │ │ 组织机构│ │ 权限 │ │ 操作日志│ │ 系统参数│ │
│ │ 管理 │ │ 管理 │ │ 管理 │ │ 分配 │ │ │ │ │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ 教育培训管理 │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 培训计划管理 │ │ 培训实施管理 │ │ 外派培训管理 │ │
│ ├──────────────────┤ ├──────────────────┤ ├──────────────────┤ │
│ │ • 部门级计划内 │ │ • 开班管理 │ │ • 经济责任制 │ │
│ │ • 部门级计划外 │ │ • 学员管理 │ │ • 非经济责任制 │ │
│ │ • 所级/院级计划 │ │ • 授课管理 │ │ • 外派登记 │ │
│ │ • 计划变更 │ │ • 签到管理 │ │ │ │
│ └──────────────────┘ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ 考试与调研 │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 考试管理 │ │ 问卷调研 │ │ 任职资格管理 │ │
│ ├──────────────────┤ ├──────────────────┤ ├──────────────────┤ │
│ │ • 试卷库 │ │ • 调研问卷 │ │ • 资格认证 │ │
│ │ • 题目管理 │ │ • 调研结果 │ │ • 资格查询 │ │
│ │ • 在线答题 │ │ │ │ │ │
│ │ • 判卷/成绩 │ │ │ │ │ │
│ └──────────────────┘ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ 支撑功能 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌─────────────┐ │
│ │ 年度培训总结 │ │ 学习资源管理 │ │ 即时通讯 │ │ 统计分析 │ │
│ │ • 部门级总结 │ │ • 文件资料 │ │ • 聊天 │ │ • FineReport│ │
│ │ • 所级总结 │ │ • 课程资料 │ │ • 群组 │ │ • 报表查看 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
2.2 培训计划管理(BPMN流程)
┌──────────────────────────────────────────────────────────────────────────────┐
│ 培训计划管理流程 │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────┐
│ 所级管理员 │
│ 发起计划 │
└──────┬──────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ 部门计划内 │ │ 部门计划外 │
│ (gip) │ │ (gop) │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────────────────────┐
│ 部门管理员填报 │
│ • 选择课程 │
│ • 填写培训需求 │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 所级管理员调研征集 │
│ • 下发调研问卷 │
│ • 部门反馈需求 │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 所级管理员汇总生成 │
│ • 生成培训计划 │
│ • 审核确认 │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 审批流程 (SP) │
│ • 部门领导审核 │
│ • 所级领导审批 │
└─────────────┬───────────────┘
│
▼
┌─────────────┐
│ 审批通过 │
│ 计划生效 │
└─────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ 计划来源 (jhly) │
├──────────────────────────────────────────────────────────────────────────────┤
│ jhly='sj' → 所级/院级计划(由所级管理员统一制定下发) │
│ jhly='bmn' → 部门级计划内(部门申报,经审批后纳入) │
│ jhly='bmw' → 部门级计划外(部门临时申请,不占用年度预算) │
└──────────────────────────────────────────────────────────────────────────────┘
2.3 培训实施流程
┌──────────────────────────────────────────────────────────────────────────────┐
│ 培训实施管理流程 │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 开班流程 (et_train_pd_cc) │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │
│ │ -1:被驳回 │───▶│ 0:未开班 │───▶│ 1:已下发 │───▶│ 2:已开班 │───▶│ 3:待审核│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └────────┘ │
│ │ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ (驳回重编) │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 课程状态 (coursestatus) │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ 培训科目 │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ status=-1,0,1│───▶│ 未完成 │ │
│ │ (未完成) │ └──────┬──────┘ │
│ └─────────────┘ │ │
│ ▲ ▼ │
│ │ ┌─────────────┐ │
│ └───────────│ 完成 │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 培训完成判定逻辑 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ IF (nd >= 2023) THEN │
│ 完成条件 = yxx.status = 2 (问卷/心得状态=已完成) │
│ ELSE │
│ 完成条件 = yxx.status IS NOT NULL ? yxx.status=2 : pg.status=1 │
│ END IF │
│ │
│ 说明:2023年起新增培训效果问卷反馈环节,替代原有的评分机制 │
└─────────────────────────────────────────────────────────────────────────┘
2.4 考试管理流程
┌──────────────────────────────────────────────────────────────────────────────┐
│ 考试管理流程 │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 试卷管理 (exampaper) │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ et_exam_exampaper_and_editexampaper ──1:N──▶ et_exam_editexampaper │
│ │
│ 试卷基础信息表 题库表(题目详情) │
│ • name: 试卷名称 • subject: 题目内容 │
│ • description: 描述 • type: 单选/多选/判断/简答 │
│ • sc: 所属课程 • score: 分值 │
│ • state: 状态 • answer: 标准答案 │
│ • startdate/enddate • optionA-F: 选项 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 考试状态 (state) │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 已撤销 │ │ 未开始 │───▶│ 正在进行 │───▶│ 已关闭 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ │ │ │
│ │ ▼ ▼ ▼ │
│ │ datediff datediff datediff │
│ │ (startdate)>0 (startdate)<=0 (enddate)<0 │
│ │ &&(enddate)>=0 │
│ └─────────────────────────────────────(不等于已撤销)───────────────│
│ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 判卷规则 (自动判分) │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 自动判分题型: │
│ • 单选题 (type='单选题') │
│ • 多选题 (type='多选题') │
│ • 判断题 (type='判断题') │
│ │
│ 判分逻辑: │
│ user_answer == answer → user_score = score │
│ 否则 → user_score = 0 │
│ │
│ 主观题(简答等) → 需人工判卷 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 参考人员来源 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 人员限定方式: │
│ • et_exam_limitation → 指定人员 │
│ • et_exam_limitation_class → 按班级/培训班 │
│ • et_exam_limitation_course → 按课程学员 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
三、BPMN业务流程模型
本章节使用标准流程图符号描述系统的核心业务流程,包含流程定义、参与者、任务节点和流程路径。
3.1 培训计划管理流程
流程定义
| 属性 |
值 |
| 流程名称 |
培训计划管理流程 (Training Plan Management) |
| 流程ID |
PROC-TRAIN-PLAN |
| 流程版本 |
v1.0 |
| 流程类型 |
审批流 + 数据填报流 |
| 触发方式 |
手工触发(所级管理员发起) |
| 流程周期 |
年度(每年Q4制定下一年度计划) |
参与者定义
| 参与者 |
角色 |
职责 |
| 所级管理员 |
Initiator |
发起计划、下发通知、汇总生成、审批 |
| 部门管理员 |
Department Admin |
填报课程需求、反馈调研 |
| 部门领导 |
Department Head |
审核部门申报 |
| 所级领导 |
Institute Head |
最终审批 |
流程图
flowchart TB
subgraph 计划来源选择
A([开始: 制定年度培训计划]) --> B{计划来源类型?}
B -->|所级计划| C[创建所级计划<br/>et_train_ip]
B -->|部门计划内| D[创建部门计划内<br/>et_train_gip]
B -->|部门计划外| E[创建部门计划外<br/>et_train_gop]
end
subgraph 部门填报阶段
C --> F1[下发填报通知]
D --> F1
F1 --> G[部门管理员填报课程需求<br/>et_train_gipgroup_kc<br/>et_train_ipgroup_kc]
G --> H{是否需要调研?}
H -->|是| I[下发调研问卷<br/>et_train_ipdy]
I --> J[部门反馈需求<br/>et_train_ipdy_kc]
J --> K[汇总需求]
H -->|否| K
end
subgraph 所级处理阶段
K --> L[所级管理员汇总生成<br/>et_train_ipf]
L --> M{数据完整?}
M -->|否| N[补充完善]
N --> L
M -->|是| O[提交审批]
end
subgraph 审批阶段
O --> P{部门领导审核}
P -->|驳回| Q([驳回: 重新填报])
Q --> G
P -->|通过| R{所级领导审批}
R -->|驳回| S([驳回: 重新汇总])
S --> L
R -->|通过| T([结束: 计划生效])
end
style A fill:#e1f5fe
style T fill:#c8e6c9
style Q fill:#ffcdd2
style S fill:#ffcdd2
流程节点详情
| 节点ID |
节点名称 |
类型 |
输入 |
输出 |
执行人 |
| PROC-TRAIN-PLAN.START |
开始 |
StartEvent |
- |
年度计划请求 |
所级管理员 |
| PROC-TRAIN-PLAN.CREATE |
创建计划 |
Task |
计划类型 |
et_train_ip/gip/gop记录 |
所级管理员 |
| PROC-TRAIN-PLAN.NOTIFY |
下发通知 |
Task |
计划ID |
通知消息 |
系统 |
| PROC-TRAIN-PLAN.FILL |
填报需求 |
Task |
通知 |
et_train_gipgroup_kc |
部门管理员 |
| PROC-TRAIN-PLAN.SURVEY |
调研征集 |
ExclusiveGateway |
- |
et_train_ipdy |
所级管理员 |
| PROC-TRAIN-PLAN.SUMMARY |
汇总生成 |
Task |
部门需求 |
et_train_ipf |
所级管理员 |
| PROC-TRAIN-PLAN.APPROVE |
审批流程 |
SubProcess |
计划ID |
审批结果 |
领导层 |
| PROC-TRAIN-PLAN.END |
计划生效 |
EndEvent |
审批通过 |
状态变更 |
系统 |
3.2 培训实施管理流程
流程定义
| 属性 |
值 |
| 流程名称 |
培训实施管理流程 (Training Implementation) |
| 流程ID |
PROC-TRAIN-IMPLEMENT |
| 流程版本 |
v1.0 |
| 流程类型 |
状态驱动流程 |
| 触发方式 |
培训计划批准后自动/手工创建 |
| 流程周期 |
单次培训(按班级) |
参与者定义
| 参与者 |
角色 |
职责 |
| 所级管理员 |
Institute Admin |
开班审核、下发 |
| 培训管理员 |
Training Admin |
课程分配、学员管理 |
| 讲师 |
Teacher |
授课、签到 |
| 学员 |
Trainee |
参训、反馈 |
| 管理员 |
Admin |
归档审核 |
流程图
flowchart TB
subgraph 开班准备
A([开始: 培训计划批准]) --> B[创建培训班级<br/>et_train_pd_cc<br/>status=0]
B --> C[选择培训讲师<br/>teacher字段]
C --> D[设置培训时间<br/>starttime/endtime]
D --> E[设置培训参数<br/>pxxsh/sfkh/khlx]
E --> F{开班审核}
end
subgraph 开班下发
F -->|通过| G[下发开班通知<br/>status=1]
F -->|驳回| H([驳回: 修改班级信息])
H --> B
end
subgraph 培训实施
G --> I[学员管理<br/>et_train_pd_cc_user<br/>添加/移除学员]
I --> J{是否需要签到?}
J -->|是| K[创建签到任务<br/>et_train_pd_cc_dt]
K --> L[学员签到]
J -->|否| M
L --> M[授课管理]
M --> N[填写实际讲师<br/>realteacher]
N --> O[标记开班完成<br/>status=2]
end
subgraph 效果评估
O --> P{是否需要考核?}
P -->|是| Q[发布评分问卷<br/>et_train_pd_cc_pg]
Q --> R[学员填写反馈<br/>et_train_pd_cc_pgwjyxx]
P -->|否| S
R --> S[问卷状态更新<br/>status=2]
end
subgraph 归档完成
S --> T[提交归档<br/>status=3]
T --> U{管理员审核}
U -->|通过| V([结束: 培训完成])
U -->|驳回| W([驳回: 补充材料])
W --> T
end
style A fill:#e1f5fe
style V fill:#c8e6c9
style H fill:#ffcdd2
style W fill:#ffcdd2
状态机定义
┌─────────────────────────────────────────────────────────────────────────────┐
│ 培训班级状态机 (et_train_pd_cc.status) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ │
│ │ -1 │◀──────────────────────┐ │
│ │ 被驳回 │ │ │
│ └────┬────┘ │ │
│ │ │ │
│ ▼ │ │
│ ┌─────────┐ 驳回重编 │ │
│ │ 0 │───────────────────────┘ │
│ │ 未开班 │ │
│ └────┬────┘ │
│ │ 开班审核通过 │
│ ▼ │
│ ┌─────────┐ │
│ │ 1 │ 下发通知 │
│ │ 已下发 │ │
│ └────┬────┘ │
│ │ 学员就位/开始授课 │
│ ▼ │
│ ┌─────────┐ │
│ │ 2 │ 培训进行中/完成 │
│ │ 已开班 │ │
│ └────┬────┘ │
│ │ 培训效果确认 │
│ ▼ │
│ ┌─────────┐ │
│ │ 3 │ 待归档审核 │
│ │ 待审核 │─────────────────────────────────────▶ [培训完成] │
│ └─────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
流程节点详情
| 节点ID |
节点名称 |
类型 |
状态值 |
后置条件 |
| PROC-IMPL.CREATE |
创建班级 |
Task |
0 |
status=0 |
| PROC-IMPL.ALLOCATE |
分配课程 |
Task |
0 |
讲师/时间已设置 |
| PROC-IMPL.REVIEW |
开班审核 |
Task |
0→1/-1 |
通过/驳回 |
| PROC-IMPL.PUBLISH |
下发通知 |
Task |
1 |
学员可查看 |
| PROC-IMPL.MANAGE |
学员管理 |
Task |
1 |
学员列表已确定 |
| PROC-IMPL.SIGN |
签到管理 |
Task |
1 |
考勤记录生成 |
| PROC-IMPL.TEACH |
授课管理 |
Task |
1→2 |
实际讲师已填 |
| PROC-IMPL.FEEDBACK |
效果反馈 |
Task |
2 |
问卷状态=2 |
| PROC-IMPL.ARCHIVE |
归档待审 |
Task |
3 |
提交审核 |
| PROC-IMPL.END |
培训完成 |
EndEvent |
3 |
流程结束 |
培训完成判定规则
flowchart TD
A([判定培训完成]) --> B{年份 >= 2023?}
B -->|是| C[问卷反馈判定]
B -->|否| D{是否有问卷?}
C --> E{yxx.status == 2?}
E -->|是| F([完成]))
E -->|否| G([未完成]))
D -->|是| E
D -->|否| H[评分判定]
H --> I{pg.status == 1?}
I -->|是| F
I -->|否| G
style F fill:#c8e6c9
style G fill:#ffcdd2
3.3 考试管理流程
流程定义
| 属性 |
值 |
| 流程名称 |
考试管理流程 (Examination Management) |
| 流程ID |
PROC-EXAM |
| 流程版本 |
v1.0 |
| 流程类型 |
定时触发 + 手工触发 |
| 触发方式 |
试卷发布后自动计时/手工开始 |
| 流程周期 |
按试卷设定的考试周期 |
参与者定义
| 参与者 |
角色 |
职责 |
| 考试管理员 |
Exam Admin |
试卷创建、发布、管理 |
| 考生 |
Candidate |
答题 |
| 阅卷教师 |
Marker |
主观题判分 |
| 系统 |
System |
自动判分 |
流程图
flowchart TB
subgraph 试卷管理
A([开始: 创建试卷]) --> B[基本信息<br/>et_exam_exampaper<br/>name/sc/state]
B --> C[添加题目<br/>et_exam_editexampaper<br/>type/subject/score]
C --> D{题目类型?}
D -->|客观题| E[设置标准答案<br/>answer字段]
D -->|主观题| F[不设答案<br/>待人工判分]
E --> G
F --> G[人员限定<br/>et_exam_limitation<br/>人员/班级/课程]
end
subgraph 考试执行
G --> H{到达开始时间?}
H -->|否| H
H -->|是| I[状态: 正在进行]
I --> J[考生登录]
J --> K[抽取试卷]
K --> L[在线答题<br/>et_exam_usertest<br/>user_answer]
L --> M{题目类型?}
M -->|客观题| N[自动判分<br/>user_score]
M -->|主观题| O[待阅卷<br/>user_score=NULL]
N --> P{全部提交?}
O --> P
P -->|否| L
P -->|是| Q{全部已判?}
end
subgraph 判卷与归档
Q -->|否| R{有待判题目?}
R -->|是| S[阅卷教师判分<br/>mark_teacher<br/>user_score]
R -->|否| Q
S --> Q
Q -->|是| T[状态: 已关闭]
end
T --> U[成绩发布]
U --> V([结束: 考试完成])
style A fill:#e1f5fe
style V fill:#c8e6c9
考试状态机
┌─────────────────────────────────────────────────────────────────────────────┐
│ 考试状态机 (exampaper.state) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 已撤销 │ │ 未开始 │───▶│ 正在进行 │───▶│ 已关闭 │ │ 已归档 │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ └─────────┘ └────┬────┘ └────┬────┘ └─────────┘ └─────────┘ │
│ ▲ │ │ │
│ │ ▼ ▼ │
│ │ datediff datediff │
│ │ (startdate)>0 (startdate)<=0 │
│ │ &&(enddate)>=0 │
│ │ │
│ │ datediff(enddate)<0 ────────────────▶ [自动关闭] │
│ └──────────────────────────────────────── (不等于已撤销) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
判分规则
| 题型 |
自动判分 |
人工判分 |
说明 |
| 单选题 |
✅ |
❌ |
答案一致得分 |
| 多选题 |
✅ |
❌ |
答案一致得分 |
| 判断题 |
✅ |
❌ |
答案一致得分 |
| 简答题 |
❌ |
✅ |
需阅卷教师评分 |
3.4 外派培训管理流程
流程定义
| 属性 |
值 |
| 流程名称 |
外派培训管理流程 (External Training) |
| 流程ID |
PROC-OUTTRAIN |
| 流程版本 |
v1.0 |
| 流程类型 |
审批流 |
| 触发方式 |
手工发起 |
| 流程周期 |
单次外派 |
参与者定义
| 参与者 |
角色 |
职责 |
| 申请人 |
Applicant |
发起外派申请 |
| 审批领导 |
Approver |
审批申请 |
| 外派学员 |
Trainee |
参训人员 |
| 登记员 |
Recorder |
外派归来登记 |
流程图
flowchart TB
subgraph 外派申请
A([开始: 发起外派申请]) --> B[填写外派信息<br/>et_train_ot<br/>pxmc/pxfy/sld]
B --> C{培训对象范围?}
C -->|本部门| D[自动关联本部门人员]
C -->|指定人员| E[指定参训人员<br/>et_train_ot_xy]
D --> F[提交审批]
E --> F
end
subgraph 审批执行
F --> G{审批结果?}
G -->|通过| H[等待外派开始]
G -->|驳回| I([驳回: 修改申请])
I --> B
H --> J{到达开始时间?}
J -->|否| J
J -->|是| K[外派培训进行中]
end
subgraph 归来登记
K --> L{培训结束?}
L -->|否| L
L -->|是| M[外派归来]
M --> N[外派登记<br/>et_train_ot_pxdj<br/>status=4]
N --> O{经济责任制?}
O -->|是| P[关联经济责任制考核]
O -->|否| Q[关联非经济责任制考核]
P --> R([结束: 外派完成]))
Q --> R
end
style A fill:#e1f5fe
style R fill:#c8e6c9
style I fill:#ffcdd2
流程节点详情
| 节点ID |
节点名称 |
涉及表 |
关键字段 |
| PROC-OUTTRAIN.APPLY |
发起申请 |
et_train_ot |
pxmc, pxfy, sld, pxdjfw |
| PROC-OUTTRAIN.SCOPE |
确定范围 |
et_train_ot_xy |
usercode, username |
| PROC-OUTTRAIN.APPROVE |
审批 |
et_train_sp |
spresult |
| PROC-OUTTRAIN.REGISTER |
归来登记 |
et_train_ot_pxdj |
status=4 |
| PROC-OUTTRAIN.ASSESS |
考核关联 |
- |
单位性质判定 |
3.5 审批流程(通用子流程)
子流程定义
| 属性 |
值 |
| 子流程名称 |
通用审批流程 (Approval Process) |
| 子流程ID |
SUB-APPROVAL |
| 调用方式 |
被主流程调用 |
| 审批层级 |
多级(可配置) |
流程图
flowchart TB
A([开始: 提交审批]) --> B[获取审批人列表<br/>et_train_sp_person<br/>按order排序]
B --> C{还有未审批项?}
C -->|是| D[当前审批人审批]
D --> E{审批结果?}
E -->|通过| F{还有下一级?}
E -->|驳回| G[驳回意见<br/>yj字段]
G --> H([结束: 审批驳回])
F -->|是| I[流转下一审批人]
I --> C
F -->|否| J[记录审批通过]
J --> K([结束: 审批通过])
C -->|否| K
style A fill:#e1f5fe
style K fill:#c8e6c9
style H fill:#ffcdd2
审批数据存储
| 字段 |
表 |
说明 |
| tname |
et_train_sp |
目标业务表名 |
| tid |
et_train_sp |
目标业务记录ID |
| spusername |
et_train_sp |
审批人姓名 |
| spdate |
et_train_sp |
审批时间 |
| yj |
et_train_sp |
审批意见 |
| spresult |
et_train_sp |
审批结果 |
3.6 年度培训总结流程
流程定义
| 属性 |
值 |
| 流程名称 |
年度培训总结流程 (Yearly Summary) |
| 流程ID |
PROC-YEAR-SUMMARY |
| 流程版本 |
v1.0 |
| 触发方式 |
年度结束(通常12月) |
| 流程周期 |
年度 |
流程图
flowchart TB
A([开始: 年度培训结束]) --> B[所级管理员创建年度总结<br/>et_train_ys]
B --> C[下发填报通知]
C --> D[部门填报<br/>et_train_ysgroup<br/>status=待填报]
D --> E[提交部门总结]
E --> F[状态更新<br/>status=3 已填报]
F --> G[所级管理员汇总<br/>合并各部门数据]
G --> H{数据完整?}
H -->|否| I[返回部门补充]
I --> D
H -->|是| J[生成所级总结报告]
J --> K([结束: 总结完成])
style A fill:#e1f5fe
style K fill:#c8e6c9
3.7 流程模型总览
| 流程ID |
流程名称 |
类型 |
触发方式 |
关联主表 |
| PROC-TRAIN-PLAN |
培训计划管理 |
审批流 |
手工触发 |
et_train_ip / et_train_gip |
| PROC-TRAIN-IMPLEMENT |
培训实施管理 |
状态流 |
计划批准后 |
et_train_pd_cc |
| PROC-EXAM |
考试管理 |
定时流 |
试卷发布 |
et_exam_exampaper |
| PROC-OUTTRAIN |
外派培训 |
审批流 |
手工发起 |
et_train_ot |
| SUB-APPROVAL |
通用审批 |
子流程 |
被调用 |
et_train_sp |
| PROC-YEAR-SUMMARY |
年度总结 |
填报流 |
年度结束 |
et_train_ys |
四、数据字典
4.1 系统管理表(JCDP_SYS_前缀)
用户表 JCDP_SYS_USER
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| LOGINNAME |
VARCHAR |
登录名 |
| USERNAME |
VARCHAR |
用户姓名 |
| PASSWORD |
VARCHAR |
密码 |
| SEX |
VARCHAR |
性别 |
| STATUS |
VARCHAR |
状态 |
| USERTYPE |
VARCHAR |
用户类型 |
| USERCODE |
VARCHAR |
用户工号 |
| DELETE_FLAG |
INT |
删除标记(0未删) |
扩展信息表 JCDP_SYS_USER_EXT
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键(关联USER) |
| EMAIL |
VARCHAR |
邮箱 |
| MOBILE |
VARCHAR |
手机 |
| PHONE |
VARCHAR |
电话 |
| ADDRESS |
VARCHAR |
地址 |
| IDNO |
VARCHAR |
身份证号 |
| BIRTHDAY |
DATE |
生日 |
| AVATARS |
VARCHAR |
头像 |
| USERIMG |
VARCHAR |
用户图片 |
| DYNAMIC_FIELD |
TEXT |
动态字段(JSON) |
组织机构表 JCDP_SYS_ORG
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| CASCADE_ID |
VARCHAR |
级联ID(树形结构) |
| NAME |
VARCHAR |
组织名称 |
| PARENT_ID |
VARCHAR |
父节点ID |
| IS_LEAF |
INT |
是否叶子节点 |
| ORGTYPE |
VARCHAR |
组织类型 |
| STATUS |
INT |
状态 |
| SORT_NO |
INT |
排序号 |
| CODE |
VARCHAR |
组织编码 |
角色表 JCDP_SYS_ROLE
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| NAME |
VARCHAR |
角色名称 |
| ROLETYPE |
INT |
角色类型(0系统/1默认/2自定义) |
| STATUS |
INT |
状态 |
| CREATER_ID |
VARCHAR |
创建人ID |
| CREATER_ORGID |
VARCHAR |
创建人组织ID |
用户-角色关联 JCDP_SYS_USER_ROLE
| 字段 |
类型 |
说明 |
| USERID |
VARCHAR |
用户ID |
| ROLEID |
VARCHAR |
角色ID |
| ROLETYPE |
VARCHAR |
角色类型 |
用户-组织关联 JCDP_SYS_USER_ORG
| 字段 |
类型 |
说明 |
| USERID |
VARCHAR |
用户ID |
| ORGID |
VARCHAR |
组织ID |
| IS_DEFAULT_ORG |
INT |
是否默认组织 |
权限模块表 JCDP_SYS_MODULE
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| HREF |
VARCHAR |
访问路径 |
| ACTIONVALUE |
VARCHAR |
操作权限值 |
| MODULETYPE |
VARCHAR |
模块类型 |
| MODULENAME |
VARCHAR |
模块名称 |
用户权限表 JCDP_SYS_USER_MODULE
| 字段 |
类型 |
说明 |
| USERID |
VARCHAR |
用户ID |
| ACTIONVALUE |
VARCHAR |
权限值 |
| ACTIONOP_JSON |
VARCHAR |
操作JSON |
角色权限表 JCDP_SYS_ROLE_MODULE
| 字段 |
类型 |
说明 |
| ROLEID |
VARCHAR |
角色ID |
| ACTIONVALUE |
VARCHAR |
权限值 |
3.2 培训业务表(ET_TRAIN_前缀)
培训课程表 ET_TRAIN_KC
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| KCMC |
VARCHAR |
课程名称 |
| KCNR |
TEXT |
课程内容 |
| GROUPID |
VARCHAR |
所属部门ID |
| GROUPNAME |
VARCHAR |
所属部门名称 |
| JHLY |
VARCHAR |
计划来源(sj/bmn/bmw) |
| SFWP |
VARCHAR |
是否外派(是/否) |
| ND |
VARCHAR |
年度 |
| KCXL |
VARCHAR |
课程系列 |
| PXRS |
INT |
培训人数 |
培训班级表 ET_TRAIN_PD_CC
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| KCMC |
VARCHAR |
课程名称 |
| KCMCID |
VARCHAR |
课程ID |
| BJMC |
VARCHAR |
班级名称 |
| BJLB |
VARCHAR |
班级类别 |
| JHLY |
VARCHAR |
计划来源 |
| STARTTIME |
VARCHAR |
开始时间 |
| ENDTIME |
VARCHAR |
结束时间 |
| PXXSH |
INT |
培训学时 |
| PXXS |
INT |
培训小时 |
| TEACHER |
VARCHAR |
计划讲师 |
| REALTEACHER |
VARCHAR |
实际讲师 |
| TEACHER_CODE |
VARCHAR |
讲师工号 |
| TEACHER_DEPARTMENT |
VARCHAR |
讲师部门 |
| STATUS |
INT |
状态(-1驳回/0未开/1已下发/2已开班/3待审核) |
| SFKH |
VARCHAR |
是否考核(是/否) |
| KHLX |
VARCHAR |
考核类型 |
| KHFS |
VARCHAR |
考核方式 |
| PRICE |
DECIMAL |
培训费用 |
| SFBFZS |
VARCHAR |
是否必需证书 |
班级学员表 ET_TRAIN_PD_CC_USER
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| CCID |
VARCHAR |
班级ID |
| USERCODE |
VARCHAR |
学员工号 |
| USERNAME |
VARCHAR |
学员姓名 |
| ISTRAIN |
VARCHAR |
是否参训(1是) |
| REALPERIOD |
DECIMAL |
实际学时 |
部门计划内表 ET_TRAIN_GIPGROUP
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| GPPID |
VARCHAR |
计划ID |
| ADDGROUPID |
VARCHAR |
填报部门ID |
| ADDGROUPNAME |
VARCHAR |
填报部门名称 |
| ADDUSERCODE |
VARCHAR |
填报人 |
| ADDUSERNAME |
VARCHAR |
填报人姓名 |
| ADDTIME |
DATETIME |
填报时间 |
| STATUS |
INT |
状态 |
部门计划外表 ET_TRAIN_GOP
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| PXMC |
VARCHAR |
培训名称 |
| SQDW |
VARCHAR |
申请单位 |
| SQR |
VARCHAR |
申请人 |
| SQTIME |
DATETIME |
申请时间 |
| LXTEL |
VARCHAR |
联系电话 |
| STATUS |
INT |
状态 |
| DWXZ |
VARCHAR |
单位性质(经济/非经济责任制) |
所级计划表 ET_TRAIN_IP
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| NAME |
VARCHAR |
计划名称 |
| STARTTIME |
VARCHAR |
开始时间 |
| ENDTIME |
VARCHAR |
结束时间 |
| STATUS |
INT |
状态 |
外派培训表 ET_TRAIN_OT
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| WPID |
VARCHAR |
物品ID(关联课程) |
| PXMC |
VARCHAR |
培训名称 |
| PXDJFW |
VARCHAR |
培训对象范围(0本部门/1指定人员) |
| PXSTARTTIME |
VARCHAR |
培训开始时间 |
| PXENDTIME |
VARCHAR |
培训结束时间 |
| PXFy |
DECIMAL |
培训费用 |
| SLD |
VARCHAR |
审批领导 |
| STATUS |
INT |
状态(5已完成) |
| DELSTATUS |
INT |
删除状态(0正常/1已删除) |
外派学员表 ET_TRAIN_OT_XY
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| OTID |
VARCHAR |
外派培训ID |
| USERCODE |
VARCHAR |
学员工号 |
| USERNAME |
VARCHAR |
学员姓名 |
| ETSORT |
INT |
排序 |
外派登记表 ET_TRAIN_OT_PXDJ
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| OTID |
VARCHAR |
外派培训ID |
| ADDUSERCODE |
VARCHAR |
登记人 |
| ADDGROUPNAME |
VARCHAR |
登记部门 |
| STATUS |
INT |
状态(4已完成) |
年度总结表 ET_TRAIN_YSGROUP
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| YSID |
VARCHAR |
总结ID |
| ADDGROUPID |
VARCHAR |
填报部门ID |
| ADDGROUPNAME |
VARCHAR |
填报部门名称 |
| ADDUSERCODE |
VARCHAR |
填报人 |
| ADDUSERNAME |
VARCHAR |
填报人姓名 |
| ADDTIME |
DATETIME |
填报时间 |
| STATUS |
INT |
状态 |
审批流程表 ET_TRAIN_SP
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| TNAME |
VARCHAR |
表名 |
| TID |
VARCHAR |
记录ID |
| SPUSERNAME |
VARCHAR |
审批人 |
| SPDATE |
DATETIME |
审批日期 |
| YJ |
TEXT |
审批意见 |
| SPRESULT |
VARCHAR |
审批结果 |
3.3 考试业务表(ET_EXAM_前缀)
试卷表 ET_EXAM_EXAMPAPER_AND_EDITEXAMPAPER
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| NAME |
VARCHAR |
试卷名称 |
| DESCRIPTION |
VARCHAR |
描述 |
| SC |
VARCHAR |
所属课程 |
| STATE |
VARCHAR |
状态(未开始/正在进行/已关闭/已撤销) |
| STARTDATE |
DATE |
开始日期 |
| ENDDATE |
DATE |
结束日期 |
题目表 ET_EXAM_EDITEXAMPAPER
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| EDIT_ID |
VARCHAR |
试卷ID |
| NUM |
INT |
题号 |
| SUBJECT |
TEXT |
题目内容 |
| TYPE |
VARCHAR |
题型(单选题/多选题/判断题/简答题) |
| TYPE_NUM |
INT |
题型序号 |
| ISMUST |
VARCHAR |
是否必答 |
| SCORE |
DECIMAL |
分值 |
| OPTIONA-F |
VARCHAR |
选项 |
| ANSWER |
VARCHAR |
标准答案 |
| ISPARAGRAPH |
VARCHAR |
是否段落题 |
用户答题表 ET_EXAM_USERTEST
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| EXAM_ID |
VARCHAR |
试卷ID |
| QUESTION_ID |
VARCHAR |
题目ID |
| USER_ID |
VARCHAR |
用户ID |
| USER |
VARCHAR |
用户姓名 |
| DEPARTMENT |
VARCHAR |
部门 |
| USER_ANSWER |
VARCHAR |
用户答案 |
| USER_SCORE |
DECIMAL |
用户得分 |
| USER_TIME |
VARCHAR |
用时 |
| MARK_TEACHER |
VARCHAR |
判卷教师 |
人员限定表 ET_EXAM_LIMITATION
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| EXAM_ID |
VARCHAR |
试卷ID |
| USER_ID |
VARCHAR |
用户工号 |
| USER |
VARCHAR |
用户姓名 |
班级限定表 ET_EXAM_LIMITATION_CLASS
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| EXAM_ID |
VARCHAR |
试卷ID |
| CLASS_ID |
VARCHAR |
班级ID |
| CLASS_PERSON_ID |
VARCHAR |
学员工号 |
| CLASS_PERSON |
VARCHAR |
学员姓名 |
课程限定表 ET_EXAM_LIMITATION_COURSE
| 字段 |
类型 |
说明 |
| ID |
VARCHAR |
主键 |
| EXAM_ID |
VARCHAR |
试卷ID |
| COURSE_ID |
VARCHAR |
课程ID |
| COURSE_PERSON_ID |
VARCHAR |
学员工号 |
| COURSE_PERSON |
VARCHAR |
学员姓名 |
3.4 即时通讯表
聊天用户状态表 JCDP_CHAT_USERSTATUS
| 字段 |
类型 |
说明 |
| USERID |
VARCHAR |
用户ID |
| USERSTATUS |
INT |
在线状态(0离线/1在线) |
| HEARTBEAT |
DATETIME |
最后心跳时间 |
五、核心业务流程详解(补充)
4.1 培训计划制定流程
┌─────────────────────────────────────────────────────────────────────────────┐
│ 阶段1: 所级管理员下发通知 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 操作: INSERT et_train_ip / et_train_gip │
│ 状态: status=1 (待填报) │
│ 对象: 关联部门 (et_train_ip_group / et_train_gip_group) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 阶段2: 部门管理员填报课程需求 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 操作: INSERT et_train_gipgroup_kc / et_train_ipgroup_kc │
│ 内容: 培训课程、人数、预算、时间段 │
│ 状态: status=1 (已填报,待调研) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 阶段3: 所级调研征集(可选) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 操作: INSERT et_train_ipdy │
│ 内容: 下发调研问卷给部门 │
│ 反馈: 部门填写 et_train_ipdy_kc │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 阶段4: 所级汇总生成计划 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 操作: INSERT et_train_ipf │
│ 内容: 整合所有部门需求,生成正式计划 │
│ 关联: et_train_ipf_kc │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 阶段5: 审批流程 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 操作: INSERT et_train_sp │
│ 内容: tname=目标表名, tid=记录ID │
│ 审批人: 从 et_train_sp_person 获取 │
│ 结果: spresult (通过/驳回) │
└─────────────────────────────────────────────────────────────────────────────┘
4.2 培训实施完整流程
┌─────────────────────────────────────────────────────────────────────────────┐
│ 培训实施完整流程 │
└─────────────────────────────────────────────────────────────────────────────┘
培训计划 ──▶ 课程分配 ──▶ 开班管理 ──▶ 学员管理 ──▶ 授课管理 ──▶ 考核管理 ──▶ 完成归档
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤1: 课程分配 (et_train_pd_cc) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 根据计划关联课程: │
│ • 选择培训讲师 (teacher) │
│ • 设置培训时间 (starttime, endtime) │
│ • 设置培训人数 (pxxsh) │
│ • 设置是否考核 (sfkh) │
│ 初始状态: status=0 (未开班) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤2: 开班下发 (status=1) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 所级管理员审核后下发 │
│ 状态: 1 (已下发) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤3: 学员管理 (et_train_pd_cc_user) │
├─────────────────────────────────────────────────────────────────────────────┤
│ • 添加学员 │
│ • 设置是否参训 (istrain=1) │
│ • 记录实际学时 (realperiod) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤4: 签到管理 (et_train_pd_cc_dt) │
├─────────────────────────────────────────────────────────────────────────────┤
│ • 创建签到任务 │
│ • 学员签到记录 │
│ • 统计出勤率 │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤5: 授课完成 (status=2) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 填写实际讲师: realteacher │
│ 状态: 2 (已开班) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤6: 培训效果反馈 │
├─────────────────────────────────────────────────────────────────────────────┤
│ et_train_pd_cc_pg → 评分问卷发布 │
│ et_train_pd_cc_pgwjyxx → 问卷/心得反馈 │
│ 2023年起完成条件改为: yxx.status = 2 │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 步骤7: 归档待审 (status=3) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 状态: 3 (待审核) │
│ 管理员审核后完成归档 │
└─────────────────────────────────────────────────────────────────────────────┘
4.3 外派培训流程
┌─────────────────────────────────────────────────────────────────────────────┐
│ 外派培训管理流程 │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ 外派培训申请 (et_train_ot) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 字段说明: │
│ • wpid: 关联培训计划课程ID │
│ • pxdjfw: 培训对象范围(0=本部门/1=指定人员) │
│ • sld: 审批领导工号 │
│ • status: 5 (已完成) │
│ • delstatus: 0 (正常)/1 (删除) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 指定参训人员 (et_train_ot_xy) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 当 pxdjfw='1' 时需要指定人员 │
│ otid: 外派培训ID │
│ usercode/username: 学员信息 │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 外派登记 (et_train_ot_pxdj) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 学员返回后进行登记 │
│ status='4' 表示已完成登记 │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 删除申请 (et_train_ot_del) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 需要走审批流程 │
│ 原记录 otid 保留在 del 表 │
└─────────────────────────────────────────────────────────────────────────────┘
六、SQL映射文件清单
5.1 系统管理模块
| 文件 |
核心SQL |
jcdp_sys_user.map.xml |
getUserListbyOrg, sys_user_valid, getUserPermissonList |
jcdp_sys_org.map.xml |
getorg_list, getorg_cascadeList, getCurrentUserOrgTree |
jcdp_sys_role.map.xml |
getRoleList, getRoleUsers, getNoRoleUserList |
jcdp_sys_module.map.xml |
getModuleList, getUserModules |
jcdp_sys_log.map.xml |
getLogList |
parameter.map.xml |
getParamList, updateParam |
dict.map.xml |
getDictList, getDictItems |
dictItem.map.xml |
getDictItemList |
5.2 培训计划模块
| 文件 |
核心SQL |
et_train_groupinplan.map.xml |
getGroupInPlanList, getGroupInPlanGroupList, getDbGroupInPlanGroupList |
et_train_groupinplan_bg.map.xml |
计划变更相关 |
et_train_groupoutplan.map.xml |
getGroupOutPlanList |
et_train_instituteplan.map.xml |
getInstitutePlanList, getInstituteDyList, getInstitutePlanFList |
et_train_instituteplan_bg.map.xml |
院级计划变更 |
et_train_kc.map.xml |
getet_train_kcList, getet_train_kc_sl (培训统计) |
et_train_sp.map.xml |
getspList, updatespyw, getMyManageList (审批) |
et_train_yearsummary.map.xml |
getYearSummaryList, getYearSummaryGroupList |
5.3 培训实施模块
| 文件 |
核心SQL |
et_train_pd.map.xml |
getPdList, getPd_KcList, getPd_CcUserList |
et_train_pd_classopener.map.xml |
开班管理 |
pd_query.map.xml |
queryTrainFlow, queryTrainTotal (综合查询) |
5.4 外派培训模块
| 文件 |
核心SQL |
et_train_outtrain.map.xml |
getOutTrainList, getOutTrainPxdjList, getOutTrainDeleteList |
5.5 考试模块
| 文件 |
核心SQL |
et_exam_editexampaper.map.xml |
试卷管理 |
et_exam_exampaper_and_editexampaper.map.xml |
试卷创建 |
et_exam_usertest.map.xml |
getExamTestList, getExamResultList, getExamMarkList |
et_exam_limitation.map.xml |
参考人员管理 |
5.6 即时通讯模块
| 文件 |
核心SQL |
chat.map.xml |
getChatUserByOrg, getOnlineUserIds, ChatUserHeartBeat |
chatGroup.map.xml |
群组管理 |
chatFriends.map.xml |
好友管理 |
七、关键业务规则
6.1 状态值汇总
| 表/实体 |
状态字段 |
状态值说明 |
| et_train_pd_cc |
status |
-1:被驳回, 0:未开班, 1:已下发, 2:已开班, 3:待审核 |
| et_train_gipgroup |
status |
同上 |
| et_train_ipgroup |
status |
同上 |
| et_train_ip |
status |
1:待填报, 2:已过期 |
| et_exam_exampaper |
state |
未开始, 正在进行, 已关闭, 已撤销 |
| et_train_ot |
status |
5:已完成 |
| et_train_ot |
delstatus |
0:正常, 1:已删除 |
| et_train_ot_pxdj |
status |
4:已完成登记 |
| et_train_ysgroup |
status |
3:已填报 |
6.2 计划来源 (jhly)
| 值 |
说明 |
来源 |
| sj |
所级/院级计划 |
所级管理员统一制定下发 |
| bmn |
部门级计划内 |
部门申报,纳入年度预算 |
| bmw |
部门级计划外 |
部门临时申请,不占预算 |
6.3 培训完成判定
2023年及以后:
完成条件 = et_train_pd_cc_pgwjyxx.status = 2 (问卷/心得已完成)
2023年以前:
完成条件 = IF(yxx.status IS NOT NULL, yxx.status=2, pg.status=1)
6.4 权限控制
用户类型 (usertype):
- 普通用户
- 管理员 (可管理所有数据)
角色类型 (roletype):
0: 系统级角色 (全局有效)
1: 默认角色 (新建用户自动分配)
2: 自定义角色 (部门级或用户级)
八、接口与集成
7.1 WebService (Apache CXF)
- 服务名: ETMSService
- 暴露地址: 可配置
- 功能: 提供外部系统调用接口
7.2 消息队列 (RabbitMQ)
- 客户端: amqp-client
- 用途: 异步消息通知、事件触发
7.3 HCM接口 (et_hcm_interface)
7.4 报表集成 (FineReport)
- 版本: FineReport 8.0
- 配置: fr-* 相关配置
- 使用: 统计分析模块
九、开发规范参考
详见同目录下的 CODE_REVIEW_GUIDE.md,包含:
- SQL注入防护规范
- FTL模板规范
- JavaScript规范
- CSS规范
- 审查流程与问题等级
文档生成时间: 2026-04-16
最后更新: 2026-04-16 (增加BPMN业务流程模型章节)
更新内容: 新增第三章"BPMN业务流程模型",包含6个核心流程的完整流程定义、参与者定义、流程图和节点详情