编辑 | blame | 历史 | 原始文档

天衡TMS → JNPF 低代码搭建参考(表字段关系与表单字段)

来源:老项目 D:\qiansheng\project\Tianheng(汇宇定制飞企 LIMS/TMS)
用途:在 JNPF 建表、建表单、配主从和关联时对照,不必再翻 LTT01 这类字段码
说明:本地没有老库。中文名来自 TrainingTaskService、签到服务、trainingTask.js 的注释和赋值;类型按用法推断


怎么用

  1. 按第 2 节顺序:字典 → 基础档案 → 计划 → 任务 → 记录 → 档案
  2. 表和字段用「JNPF建议名」,老字段码只作对照
  3. 标了**主从**的做成子表;需要带出编号/版本的做成**关联表单/弹窗选择**
  4. 老系统里同一套 LTT* 在「培训任务」和「个人任务」含义不同,JNPF 必须拆成两张表

老库边界:业务表多在 FE_APP5,培训记录 LZ_ZYPXJL* 常在 FE_BASE5。JNPF 可全部放同一业务库。


1. 全链路与表关系

flowchart LR
  subgraph demand [需求]
    A1[岗位需求 HY_STATION_TRAIN]
    A2[临时需求 LIMS_TRAIN]
  end
  subgraph plan [计划]
    B1[年度计划 LIMS_ANNUAL_TRAINING_PROGRAM]
    B2[岗位计划 UNITCODE_POST_TRAIN_PLAN]
  end
  subgraph task [实施]
    C1[培训任务 LIMS_TRAINING_TASK]
    C2[个人任务 LIMS_TRAINING_TASK_PERSONAL]
    C3[视频学习 VIDEO_TRAIN]
    C4[考试计划 TM_EXAM_PLAN]
  end
  subgraph rec [归档]
    D1[培训记录 LZ_ZYPXJL]
    D2[个人档案 HY_PERSONAL_RECORD]
    D3[上岗资质 HY_ONDUTY_EVALUATTON]
    D4[资质文件 UNITCODE_ZZWJGL]
  end
  A1 --> B1
  A1 --> B2
  A2 --> C1
  B1 --> C1
  B2 --> C1
  B2 --> C2
  C1 --> C2
  C1 --> D1
  C2 --> C3
  C1 --> C4
  C2 --> D1
  D1 --> D2
  D1 --> D3
  D2 --> D4

主键链路:

老字段 JNPF建议
年计划子表 培训任务 LTT54 / LTT20 来自 LATPC00 annual_item_id
岗计划子表 培训任务 LTT54 来自 PTPS00 post_item_id
临时需求 培训任务 LTT23=申请单号,LTT35=3 demand_no + source_type
培训任务 个人任务 个人LTT11 = 任务LTT00 task_id
培训任务 培训记录 LZ25 = LTT00 task_id
记录主表 签到子表 LZC10 = LZ00 record_id
个人任务 视频学习 TRAINPERSONALID person_task_id
培训任务 考试计划 TRAINTASK_ID + PAPER_ID(LTT25) task_id + paper_id
档案子表 个人任务 HPRS10 person_task_id

任务来源 LTT35(做成字典):1 年度计划;岗位计划另有来源类别 LTT553 临时培训。自学/文件培训常常直接进个人任务。

任务状态 LTT16:培训未发布 → 培训已发布 → 培训已完成 / 培训已终止
计划子表状态 LATPC23 / PTPS22:任务待发布 / 任务已发布 / 任务已完成


2. 搭建顺序

2.1 先配字典

字典 选项(按老系统现状)
任务状态 培训未发布 / 培训已发布 / 培训已完成 / 培训已终止
计划行状态 任务待发布 / 任务已发布 / 任务已完成
来源类型 年度计划 / 岗位计划 / 临时培训 / 文件培训 / 外出培训
培训方式 面授 / 自学 / 在线学习 / 实操 / 外派(以现场字典为准)
考核方式 考试 / 实操 / 评估 / 无
掌握程度 了解 / 熟悉 / 掌握
是否合格 合格 / 不合格 / N/A
视频完成 未完成 / 已完成
课程评估状态 未发起 / 已发布(1) / 已停止(2)
资质状态 有效 / 近效期 / 无效

2.2 表单清单

顺序 JNPF表单 建议表名 老表 主从 流程
1 培训教材 tms_material PEI_XUN 可带子表
2 培训地点 tms_place 任务地点+占用校验
3 岗位培训需求 tms_station_demand HY_STATION_TRAIN + SUB1 视现场
4 临时培训需求 tms_temp_demand LIMS_TRAIN + LIMS_TRAIN_SUB
5 年度培训计划 tms_annual_plan LIMS_ANNUAL_TRAINING_PROGRAM + CHILD
6 岗位培训计划 tms_post_plan UNITCODE_POST_TRAIN_PLAN + SUB
7 培训任务 tms_task LIMS_TRAINING_TASK + SUB 跨月/在岗送审
8 个人培训任务 tms_person_task LIMS_TRAINING_TASK_PERSONAL 一人一行 发布时生成
9 培训记录 tms_record LZ_ZYPXJL + CHILD 归档
10 视频学习进度 tms_video_learn VIDEO_TRAIN
11 考试计划 tms_exam_plan TM_EXAM_PLAN 挂卷时生成
12 个人培训档案 tms_person_file HY_PERSONAL_RECORD + SUB
13 上岗资质 tms_onduty HY_ONDUTY_EVALUATTON 可子表
14 资质文件 tms_certificate UNITCODE_ZZWJGL + SUB
15 外派培训 tms_out_train WAI_CHU 可子表
16 课程评估 tms_course_eval DQPG_JH 可子表
17 计划变更 tms_plan_incident LIMS_ANNUAL_INCIDENT + SUB 变更流程

题库试卷答卷(TM_PAPER / TM_EXAM_INFO)是完整考试引擎,可二期再迁;一期先做选试卷 + 成绩回写。


3. 模块字段对照

JNPF字段可直接做设计器字段名;老字段只对照;控件按 JNPF 常用控件。

3.1 培训教材 PEI_XUN → tms_material

发布任务、临时需求都会按教材编号取媒体号和版本。

JNPF字段 中文 老字段 控件 说明
material_no 教材编号 PX01 流水号 对齐「培训教材流水号」
material_name 教材名称 PX02 单行 必填
media_no 媒体号 PX04 单行/附件 视频或文档
version 版本号 PX14 单行 带到任务 version
media_type 类型 PX16 / PX18 下拉 文档/视频
min_read_seconds 阅读时长下限 PX17 数字 在线学习校验
file 附件 附件 可替代媒体号
status 状态 下拉 启用/停用

关联:任务、需求子表、岗计划子表都弹窗选教材,回写编号、名称、版本、媒体。

3.2 岗位培训需求 HY_STATION_TRAIN → tms_station_demand

主表:

JNPF字段 中文 老字段 控件
dept_id 部门 HST01 组织
post_id 岗位 HST02 岗位

子表 HY_STATION_TRAIN_SUB1:

JNPF字段 中文 老字段 控件
material_id 教材/资料 HSTS02 关联教材
subject 培训主题 HSTS04 单行
mastery 掌握程度 HSTS05 下拉
exam_type 考核方式 HSTS06 下拉
module_type 模块类型 HSTS07 下拉
train_mode 培训方式 HSTS08 下拉
video_no 视频编号 HSTS09 关联

用途:导入年计划子表,或刷新岗计划。

3.3 临时培训需求 LIMS_TRAIN → tms_temp_demand(流程)

主表:

JNPF字段 中文 老字段 控件 生成任务
applicant 申请人 LT01 用户 LTT30
apply_dept 申请部门 LT02 组织 LTT33
apply_time 申请时间 LT03 日期时间
apply_no 申请单号 LT04 流水号 LTT23

子表 LIMS_TRAIN_SUB:

JNPF字段 中文 老字段 控件 生成任务
subject 培训主题 LTS06 单行 LTT01
start_time 开始时间 LTS05 日期时间 LTT02
train_mode 培训方式 LTS07 下拉 LTT05
trainees 培训对象 LTS08 用户/部门多选 LTT06
exam_type 考核方式 LTS12 下拉 LTT29
exec_dept 执行部门 LTS13 组织 LTT52
material_no 资料编号 LTS14 关联教材 LTT17,并带出媒体、版本

审批通过:插任务,source_type=临时,状态=培训未发布。同一需求不能重复生成。

3.4 年度培训计划 → tms_annual_plan(流程)

主表 LIMS_ANNUAL_TRAINING_PROGRAM:

JNPF字段 中文 老字段 控件 说明
plan_no 计划编号 LATP02 流水号 带到任务来源编号
category 培训分类 LATP03 下拉 带到任务分类
author 制定人 LATP04 用户 带到任务制定人
year 计划年份 年度维度 下拉 前端有年份限制
version 版本号 LATP09 数字 变更升版
approve_flag 送审标志 LATP08 下拉 过审老版本标 3
approve_date 批准日期 LATP10 日期 审批通过写入

LATP05 / LATP06 复制版本时原样拷贝,对着原表单补中文名即可。

子表 LIMS_ANNUAL_TR_PR_CHILD:

JNPF字段 中文 老字段 控件 生成任务
month 培训月份 LATPC02 下拉1-12 LTT47
content 培训内容 LATPC03 单行 LTT01
train_mode 培训方式 LATPC04 下拉 LTT05
trainees 培训对象 LATPC05 用户/岗位/部门多选 LTT06
teacher 培训师 LATPC07 用户 LTT07
exam_type 考核方式 LATPC08 下拉 LTT09
material 培训教材 LATPC12 关联教材
mastery 掌握程度 LATPC19 下拉 LTT48
exec_dept 执行部门 LATPC20 组织
doc_no 资料编号 LATPC21 关联
video_no 视频编号 LATPC22 关联
row_status 行状态 LATPC23 下拉
prev_id 上版记录 LATPC01 隐藏 变更对比
parent_id 主表ID LATPC10 隐藏
id 子表主键 LATPC00 任务 annual_item_id

规则:审批通过按子表生成未发布任务;当月可直接发布,跨月先送审;已执行行不能变更;归档后行状态=任务已完成。

3.5 岗位培训计划 → tms_post_plan

主表 UNITCODE_POST_TRAIN_PLAN:

JNPF字段 中文 老字段 控件
post_code 岗位编码 PTP01 关联岗位
post_name 岗位名称 PTP02 带出
dept_id 所属部门 PTP03 组织
trainees 培训对象 PTP04 用户多选
end_time 计划结束 PTP05 日期时间
publish_status 发布情况 PTP07 下拉,默认未发布
post_desc 岗位描述 PTP08 多行
plan_type 计划类型 PTP10 下拉,入职/转岗/复训
start_time 开始时间 PTP12 日期时间
post_plan_no 岗位培训编号 PTP13 流水号
dept_code 部门编码 PTP16 单行
floor_no 楼层 PTP17 对应任务 LTT65
area_no 车间/功能区 PTP18 对应任务 LTT64

子表 UNITCODE_POST_TRAIN_PLAN_SUB:

JNPF字段 中文 老字段 控件
plan_time 计划时间 PTPS01 日期时间
subject 主题/内容 PTPS02 / PTPS15 单行
material_no 教材编号 PTPS03 / PTPS14 关联教材
train_mode 培训方式 PTPS04 / PTPS19 下拉
hours 课时 PTPS05 数字
teacher 培训师 PTPS06 用户
exam_type 考核方式 PTPS07 / PTPS17 下拉
place 地点 PTPS09 关联地点
end_time 结束时间 PTPS10 日期时间
train_type 培训类型 PTPS11 下拉
video 学习视频 PTPS12 关联
doc 学习资料 PTPS13 关联
mastery 掌握程度 PTPS16 下拉
exec_dept 部门 PTPS21 组织
row_status 状态 PTPS22 下拉

自学/文件生效:可直接生成个人任务。现场类:先生成培训任务再发布。

个人岗位培训记录 UNITCODE_PERSON_TRAIN(UPT* / UPTS*)是岗计划完成后的个人记录,JNPF 可并入档案子表,或单独 tms_person_post_train:记录编号 UPT01、部门 UPT02、岗位 UPT03、受训人 UPT06、办结 UPT07、来源计划 UPT08、培训师 UPT11;子表主题 UPTS01、教材 UPTS02、方式 UPTS03、课时 UPTS04、考核 UPTS06、完成时间 UPTS07、结果 UPTS08。

3.6 培训任务(核心)LIMS_TRAINING_TASK → tms_task

发布后拆个人任务、生成记录壳、绑考试、归档回写计划。

基本信息

JNPF字段 中文 老字段 控件 规则
task_no 培训编号 LTT19 流水号 发布时生成,个人任务和记录都带它
serial_no 任务流水号 LTT49 流水号 「培训任务流水号」
first_no 首次编号 LTT50 单行 二次培训用
subject 培训主题 LTT01 单行 必填
category 培训分类 LTT04 下拉 年计划来自 LATP03
train_mode 培训方式 LTT05 下拉
place 培训地点 LTT03 / LTT39 关联地点 时段占用校验
source_type 计划类型 LTT35 下拉 1年计划 / 3临时 等
source_no 来源编号 LTT23 单行 年计划编号或申请单号
source_item_id 来源子表ID LTT20 / LTT54 隐藏 回写计划行
source_kind 来源类别 LTT55 下拉
status 任务状态 LTT16 下拉 默认培训未发布
second_flag 二次培训 LTT63 开关

地点在老代码里 LTT03 和个人任务复制时的 LTT39 都出现过,JNPF 统一成 place。

时间与发布

JNPF字段 中文 老字段 控件 规则
start_time 开始时间 LTT02 日期时间 不能早于发布时间
end_time 结束时间 LTT21 日期时间
close_time 关闭时间 LTT14 日期时间
plan_time 计划/通知时间 LTT11 日期时间
publish_time 发布时间 LTT31 日期时间 发布按钮写入
month 培训月份 LTT47 下拉 年计划带入
next_train_time 下次培训 LTT37 日期
preview_time 预览时间 LTT34 数字/日期
notified 是否已通知 LTT12 开关
time_type 时间类型 LTT41 下拉 值为1时可直接终止

人员与组织

JNPF字段 中文 老字段 控件
trainees 培训对象 LTT06 用户/岗位/部门多选,发布时按人拆行
teacher 培训师 LTT07 用户多选
author 制定人 LTT13 用户
starter 发起人 LTT30 用户,临时需求=申请人
belong_dept 所属部门 LTT33 组织
start_dept 发起部门 部分逻辑混在 LTT35 组织,务必和来源类型拆开
exec_dept 执行部门 LTT36 / LTT52 组织
train_dept 培训部门 LTT42 组织
floor_no 楼层 LTT65 单行
area_no 车间/功能区 LTT64 单行

教材 / 考核 / 评估

JNPF字段 中文 老字段 控件 注意
material_no 教材编号 LTT17 关联教材 个人任务里曾放到 LTT15
media_no 媒体号 LTT18 带出
material_file 培训教材 任务LTT18;个人任务误用LTT16 附件 不要用状态字段存教材
version 资料版本 LTT60 单行 来自教材 PX14
video_no 视频编号 LTT38 / LTT22 关联视频
exam_type 考核方式 LTT29 / LTT09 下拉 实操要走实操送审
paper_id 试卷 LTT25 关联试卷 写考试计划
exam_start 开考时间 挂卷时的 LTT26 日期时间 与个人任务「来源表名」同码不同义
exam_end 结考时间 LTT27 日期时间
mastery 掌握程度 LTT48 下拉
eval_status 课程评估状态 LTT59 下拉 1已发布 2停止
exist_flag 是否已有任务 LTT40 隐藏 防重复

子表 LIMS_TRAINING_TASK_SUB → tms_task_file:

JNPF字段 中文 老字段
parent_id 任务ID LTTS01
file_no 编号 LTTS02
file_name 文件名称 LTTS03
version 版本 LTTS04
media 多媒体 LTTS05

发布按钮要做的事(事件/代码块)

  1. 校验:地点时段未占用;开始时间不低于发布时间;对象非空;在线学习须有教材
  2. 当月直接发布,跨月先送审
  3. 生成培训编号,状态改「培训已发布」,写发布时间
  4. 按对象展开用户,插入个人任务
  5. 插入培训记录主表 + 人员子表(签到时间为空)
  6. 若有视频章节,按人×章节插入学习进度
  7. 若考核=考试且已选试卷,插入/更新考试计划
  8. 发通知(站内信/钉钉)

前端现成文案可做成校验提示:请选择培训地点;该时间段地点已被占用;开始时间早于发布时间;该培训方式不可在线签到;有签到内容是否合格没填写;请选择试卷;跨月请先送审;当月无需送审直接发布;临时/计划送审不能混用;未签到不允许提交归档;课程评估不可重复发起;需求已生成过任务。

3.7 个人培训任务 → tms_person_task

老表复用 LTT*,含义与任务主表不同。JNPF 必须新字段名。

JNPF字段 中文 个人任务老字段 来自任务 控件
task_id 所属任务 LTT11 任务 LTT00 关联任务
train_no 培训编号 LTT17 任务 LTT19 带出
subject 主题 LTT01 LTT01
start_time 开始 LTT02 LTT02
end_time 结束 LTT21 LTT21
place 地点 LTT03 LTT03
category 分类 LTT04 LTT04
train_mode 方式 LTT05 LTT05
user_id 学员 LTT06 展开后的人 用户
teacher 培训师 LTT07 LTT07
material_no 教材编号 LTT15 任务 LTT17
material 培训教材 LTT16 任务 LTT18 附件;此处不是状态
video_no 视频 LTT22 任务 LTT38
person_status 个人完成状态 LTT23 默认未完成 下拉
exam_type 考核方式 LTT25 任务 LTT29
source_table 来源表名 LTT26 如 FE_APP5.LIMS_TRAINING_TASK 隐藏/下拉
close_time 关闭时间 LTT14 LTT14

自学/文件培训可直接插个人任务,不经过任务主表,用 source_table 区分来源。

3.8 培训记录与签到 LZ_ZYPXJL → tms_record

发布时先建记录壳,签到写子表时间,归档改状态。

主表:

JNPF字段 中文 老字段 控件
train_date 培训开始日期 LZ01 日期
category 培训分类 LZ02 下拉
trainees 培训对象快照 LZ03 文本
place 地点 LZ04
train_no 培训编号 LZ05
attachment 附件 LZ07 附件
teacher 培训师 LZ11 用户
subject 主题 LZ13
eval_type 效果评估方式 LZ14 下拉
train_type 培训类型 LZ19 下拉
task_id 关联任务 LZ25 关联任务
train_mode 培训方式 LZ26 下拉
archived 是否归档 LZ27 开关
paper_id 试卷编号 LZ29
end_time 结束时间 LZ30 日期时间
exam_status 考核状态 LZ37 下拉
hours 学时 LZ61 数字
in_teacher_list 是否师资清单 LZ62 开关
version 资料版本 LZ64
pass_rate_plan 预设合格率 LZ65 数字
task_no 关联任务编号 LZ66
person_count 培训人数 PXCOUNT 数字
pass_rate 合格率 HGL 数字

子表 LZ_ZYPXJL_CHILD → tms_record_person:

JNPF字段 中文 老字段 规则
user_id 人员 LZC01
post_id 岗位 LZC02
score 成绩 LZC03
record_id 主表 LZC10
dept_id 部门 LZC13
sign_time 签到时间 LZC17 有值才能考试 isCanExam
pass_flag 是否合格 LZC19 归档写入档案

签到:校验方式是否允许在线签到、校验时间窗,成功后写 sign_time。未签到则归档和开考都拦截。

3.9 视频学习 VIDEO_TRAIN → tms_video_learn

发布时按人×章节生成。

JNPF字段 中文 老字段
video_id 视频教材 VID
chapter_id 章节 VCID
progress 观看进度 WATCHSPEED
pass_flag 完成标志 ISPASS(未完成/已完成)
user_id 用户 USERID
play_count 播放次数 PLAYERCOUNT
person_task_id 个人任务 TRAINPERSONALID

老前端 mediaVideo.js + taskStudyTimer 定时回写。JNPF 做学习页 + 接口更新即可。

3.10 考试(一期做计划和成绩)

任务挂卷:TrainingTaskService4Bristol.updateWithExamPaper

考试计划 TM_EXAM_PLAN:

JNPF字段 中文 老字段
task_id 培训任务 TRAINTASK_ID
paper_id 试卷 PAPER_ID
plan_date 创建时间 PLAN_DATE
start_time 开考 START_TIME
stop_time 结考 STOP_TIME
status 状态 STATUS,代码里写 1

老引擎还有 TM_PAPER 试卷、TM_EXAM_INFO 考生场次、TM_PAPER_RECORD 答卷、TM_EXAM_TASK 考核任务。

独立考核单 TW*(可并入考试计划或单独表):主题 TW02、编号 TW03、方式 TW04、任务编号 TW05、分数 TW06、试卷 TW07、开始 TW08、结束 TW09、对象 TW10、地点 TW11、时长 TW12、人数 TW15、合格率 TW16、合格人数 TW18、原因 TW19、类型 TW20、来源表 TW22。

准入:存在考试计划,且当前用户记录子表已签到。

3.11 个人培训档案 HY_PERSONAL_RECORD → tms_person_file

一人一档,归档时写入。前端限制不能重复建档。

主表:档案编号 HPR01、工号 HPR02、人员 HPR03、岗位 HPR04、部门 HPR05、备注 HPR06。

子表 HY_PERSONAL_RECORD_SUB:

JNPF字段 中文 老字段
train_no 培训编号 HPRS02
subject 主题 HPRS03
start_time 开始 HPRS04
end_time 结束 HPRS05
teacher_id 培训师ID HPRS06,外派填 0
train_mode 方式 HPRS07
train_type 类型 HPRS08,含外派培训
pass_flag 是否合格 HPRS09,来自 LZC19
person_task_id 个人任务 HPRS10
task_serial 任务流水号 HPRS11
teacher_name 培训师姓名 HPRS16

另有员工档案 LZ_EMPLOYEE_FILE(LEF02 人员,LEF10 岗位,LEF46 建档时间)和证书子表 LEFZ01-05(序号、证书名、证书号、获得时间、有效期)。JNPF 建议只留「人员 + 培训履历 + 证书」,不要再并行两套档案。

3.12 资质 / 上岗

资质文件 UNITCODE_ZZWJGL_SUB:员工 UZ03、序号 UZS01、证书名 UZS02、编号 UZS03、获得时间 UZS04、有效期 UZS05、类型 UZS07(如培训师资质)、状态 UZS08。Job:UnitcodeZzwjglJob。

上岗资质 HY_ONDUTY_EVALUATTON:员工 HCE01、资质名称 HCE02、类型 HCE03、状态 HCE30。归档 qualificationsWriteIn。Job:HyOndutyEvaluattonJob。

师资评估 HY_CANDIDATE_EVALUATTON 可二期。

3.13 外派培训 WAI_CHU → tms_out_train(流程)

通过后写入档案子表,类型固定「外派培训」,合格 N/A。

JNPF字段 中文 老字段
user_id 人员 WC03
train_no 培训编号 WC06
subject 主题 WC07
start_time 开始 WC11
teacher_name 培训师名称 WC46
train_mode 培训方式 WC51

3.14 课程评估 DQPG_JH → tms_course_eval

任务上「发起课程评估」生成,任务 eval_status 标记已发起。

字段:培训编号 DJ02、主题 DJ03、讲师 DJ06、评论人 DJ11、任务ID DJ18。

3.15 计划变更 LIMS_ANNUAL_INCIDENT_SUB

描述 LAIS02、类型 LAIS03(变更/终止)、日期 LAIS04、行动 LAIS05、任务编号 LAIS09、来源 LAIS10。


4. 推荐表单布局

4.1 培训任务(最常用)

  • 页签1 基本信息:主题、编号只读、分类、方式、来源类型、来源计划(关联)、状态只读
  • 页签2 时间地点:开始、结束、关闭、地点(占用校验)、月份
  • 页签3 人员:对象多选、培训师、发起人、所属部门、执行部门
  • 页签4 教材考核:教材(带出版本/媒体)、视频、考核方式、试卷、开考/结考、掌握程度
  • 子表:教材/附件清单
  • 按钮:保存;发布(当月);送审(跨月/临时/在岗);终止;归档;发起课程评估;二次培训
  • 权限:未发布可改;已发布锁关键字段;已完成只读

4.2 年度计划

主表:年份、编号、分类、制定人、版本
子表:月份、内容、方式、对象、培训师、考核、教材、掌握程度、执行部门、行状态
流程按现场:编制 → 部门负责人 → 质量部 → 总经理
通过后自动生成任务。

4.3 个人任务(学员端)

列表:主题、时间、状态、学习进度、是否可考
详情只读 + 按钮:签到、学习教材、进入考试、确认完成
不要给学员改对象和教材。

4.4 培训记录

主表只读任务快照 + 归档标记
子表:人员、部门、岗位、签到时间、成绩、合格
归档:回写计划行完成、写个人档案、写上岗资质。


5. 跨表回写(对着 JNPF 事件/流程结束脚本)

时机 写哪些表 老方法
临时需求通过 插任务,未发布,来源=临时 postTempPlan
年计划通过 按子表插任务,绑定子表ID planCreateTrain
岗计划通过 自学→个人任务;现场→任务 postCreateTrain / postTrain
发布任务 已发布;个人任务;记录主从表;视频进度;考试计划;消息 sendTrainingTaskNotice
签到 记录子表签到时间 trainingSign
交卷 成绩、是否通过 考试回写
归档 任务已完成;计划行已完成;档案子表;合格率 createTrain / guidang
外派通过 档案子表类型=外派培训 createPersonRecord
终止 任务已终止 terminationTasks

6. 老系统坑(不要照搬)

  1. 同一字段码多义:LTT16 在任务=状态、在个人任务=教材;LTT26 挂卷=开考时间、个人任务=来源表名;LTT06 任务=对象集合、个人任务=单人。JNPF 全部拆开命名。
  2. 两套档案:HY_PERSONAL_RECORD 与 LZ_EMPLOYEE_FILE 归档都会写。建议只留人员+履历+证书。
  3. 记录表跨库:老记录在 FE_BASE5,任务在 FE_APP5。JNPF 同库用 task_id 关联即可。
  4. 地点冲突、跨月送审、实操另走流程:要用按钮显示条件+事件,不要只靠必填。
  5. 考试强依赖签到;在线学习还要进度/阅读时长。
  6. 流水号要分开配:培训任务、教材、档案、申请单各一套。

7. 建议物理表

表名 说明 关键外键
tms_material 教材
tms_place 地点
tms_station_demand / _item | 岗位需求 | post_id, material_id |
| tms_temp_demand / _item | 临时需求 | material_id |
| tms_annual_plan / _item | 年计划 | |
| tms_post_plan / _item | 岗计划 | post_id, material_id |
| tms_task / tms_task_file | 任务 | source_item_id, material_id, paper_id, place_id |
| tms_person_task | 个人任务 | task_id, user_id |
| tms_record / tms_record_person | 记录+签到 | task_id, user_id |
| tms_video_learn | 学习进度 | person_task_id, user_id |
| tms_exam_plan | 考试计划 | task_id, paper_id |
| tms_person_file / _item | 档案 | user_id, task_id |
| tms_certificate | 证书 | user_id |
| tms_onduty | 上岗 | user_id |
| tms_out_train | 外派 | user_id |
| tms_course_eval | 课程评估 | task_id |

8. 和目标产品设计的差异

D:\qiansheng\项目文档\JNPF\TMS 里的详细设计 V1.0 是目标蓝图(问卷、矩阵缺口、双评阅卷、电子签名三要素等)。老天衡没有全部落地。

先按本文把已跑通的闭环搭起来:需求 → 年/岗计划 → 任务 → 签到/学习 → 考试 → 归档 → 档案/资质。矩阵、问卷、防作弊、双评放二期。

核对代码:

想核对 打开
任务发布/归档 lims/fe/lims/service/TrainingTaskService.java
挂卷/能否考试 TrainingTaskService4Bristol.java
签到 tms/fe/tms/service/impl 下 Sign 实现
前端按钮校验 WebRoot/js35/app/trainingTask.js

字段以现场库为准。以后若能连上 FE_APP5,用各表 XXX00 主键把类型从「推断」改成真实类型即可。


已按设计器格式拆出培训任务表单:docs/培训任务表单-JNPF设计器配置.md