# 天衡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. 全链路与表关系 ```mermaid 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` 年度计划;岗位计划另有来源类别 `LTT55`;`3` 临时培训。自学/文件培训常常直接进个人任务。 任务状态 `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`