报工单升级优化分析文档
版本: v2.0.003 日期: 2026-03-03 负责人: 周启威
一、现有 API 数据摸底
重要发现:
processName/processId 虽在 Report.java 标注 @TableField(exist=false),但 Mapper XML 已 JOIN 返回真实值
customerName 字段已有 JOIN 逻辑;当前示例返回为 null,说明在某些数据下仍可能为空。按业务约束“无销售订单就无工单”时该字段应有值;若线上仍出现 null,需后端在查询时补齐或明确业务允许为空
materialName、batchNumber、quantity 均已返回,可在新增时直接回显
与你本次确认的补充:
- 工单表
pro_workorder 已存在字段 process_start_time(实体字段 processStartTime),本次 plan_start_time 以此字段作为来源,避免自创字段名
- 工序时长来源为工单工序明细
pro_workorder_entry.duration(实体字段 WorkOrderEntry.duration,单位:秒)
二、字段说明(含冗余字段处理)
2.1 已移除字段(见 SQL 注释)
| 字段 |
原说明 |
现阶段处理 |
report_count |
报工数 |
与 report_quantity 语义完全相同,已从 SQL 中移除,直接用 report_quantity |
quality_check_status |
质检合格(合格/不合格) |
与现有 quality_status(B=待检验/C=已通过/D=有异常)重叠,已从 SQL 中移除 |
2.2 字段修改(现有字段调整)
| 字段 |
原说明 |
现阶段调整 |
is_settle |
是否结算工资(只读) |
改为可编辑,前端去掉 :disabled="true" |
wages |
结算工资(只读) |
改为可编辑,前端去掉 :disabled="true" |
三、新增字段完整说明
3.1 新增时自动回显字段(进入页面即自动填充,用户可见)
区别于"保存时赋值"——这些字段在打开新增报工单表单时就已经显示出来,用户无需输入。
| 新增字段 |
数据来源 |
来源字段(已在API响应中) |
customer_name / customer_id |
工单关联销售订单客户 |
customerName(当前示例可能为 null);customer_id 需要后端同步返回(或在保存时从工单关联关系写入) |
workpiece |
工件/成品名称 |
= materialName |
product_batch |
产品批次 |
= batchNumber |
process_name / process_id |
工序 |
= processName / processId(已 JOIN) |
plan_start_time |
计划开始时间 |
= 工单 process_start_time(实体字段 processStartTime) |
plan_end_time |
计划完工时间 |
= process_start_time + 工单工序明细 duration(WorkOrderEntry.duration,单位秒)(注意:不是 planFinishDate) |
plan_count |
计划数 |
= 工单排产数量 quantity |
3.2 默认值字段(手动填写,但有明确默认值)
| 新增字段 |
默认值 |
说明 |
report_type |
NORMAL(正常报工) |
字典 production_report_type,用户可修改 |
actual_start_time |
= plan_start_time |
用户可修改为实际时间 |
actual_end_time |
= plan_end_time |
用户可修改为实际时间 |
performance_wages |
0 |
手动填写 |
energy_consumption |
0 |
手动填写 |
material_consumption |
0 |
手动填写 |
other_costs |
0 |
手动填写 |
value_added |
0 |
手动填写 |
downtime_minutes |
0 |
已有字段,默认0 |
yield_rate |
自动计算 = qualifiedQuantity / reportQuantity × 100 |
前端实时更新 |
station_oee |
自动计算(公式待完善,暂可手动编辑) |
前端计算 |
current_benefit |
自动计算 = value_added - energy_consumption - material_consumption - other_costs |
前端计算 |
3.3 纯手动填写字段(无默认值,SQL 新增列)
| 新增字段 |
说明 |
execution_standard |
执行标准,手动输入,默认空 |
team_name / team_id |
班组,字典 production_team 下拉选择,默认空 |
theoretical_cycle_time |
理论节拍(分钟/件),用于 OEE 参考,默认空 |
station_exception |
工位异常情况,文本域,默认空 |
rectification_suggestion |
整改建议,文本域,默认空 |
3.4 已有字段——本次仅扩展 UI 支持(不在 SQL 中重复 ADD)
以下字段在 2025-11-11_02_周启威_连续制造业改进.sql 中已添加到 pro_report,
且 Report.java 中无 @TableField(exist=false) 标注(已持久化),
本次 SQL 不得重复添加,否则报错。仅需前端 UI 向离散制造也开放该字段。
| 字段 |
DB 现状 |
本次动作 |
shift_name(班次) |
已存在,已持久化 |
离散制造前端新增选择控件 |
downtime_reason(停机原因) |
已存在,已持久化 |
离散制造前端新增输入控件 |
downtime_minutes(停机时间) |
已存在,已持久化,默认 0 |
离散制造前端新增输入控件 |
3.5 后端自动写入字段(不暴露到前端)
| 字段 |
写入时机 |
值 |
report_submit_time |
保存时 |
new Date() |
四、字段适用范围(离散 vs 连续制造)
原来部分字段仅限"连续制造",现统一:离散和连续制造均需支持以下字段。
| 字段 |
离散制造(formA.vue) |
连续制造(form.vue) |
班次 shift_name |
✅ 需要 |
✅ 需要 |
班组 team_name |
✅ 需要 |
✅ 需要 |
实际开始时间 actual_start_time |
✅ 需要(默认=计划开始时间) |
✅ 需要(默认=reportPeriodStart) |
实际完工时间 actual_end_time |
✅ 需要(默认=计划完工时间) |
✅ 需要(默认=reportPeriodEnd) |
停机时间 downtime_minutes |
✅ 需要(默认0) |
✅ 需要(已有,默认0) |
停机原因 downtime_reason |
✅ 需要 |
✅ 需要(已有) |
五、前端计算字段说明
5.1 良品率(yield_rate)
5.2 本次效益(current_benefit)
5.3 工位OEE(station_oee)
六、快捷字典编辑按钮需求
6.1 需求说明
报工单表单中,凡是字典下拉字段,旁边增加 ⚙️ 小按钮。
点击后在新 Tab 打开该字典的数据维护页,无需导航系统菜单。
6.2 涉及字典字段
| 字段 |
字典类型 |
分组 |
需要按钮 |
| 报工类型 |
production_report_type |
A-基础信息 |
✅ |
| 班次 |
sys_shift_type |
A-基础信息 |
✅ |
| 班组 |
production_team |
A-基础信息 |
✅ |
| 是否结算工资 |
sys_yes_no |
D-成本效益 |
❌ 系统字典不建议编辑 |
6.3 技术方案
七、页面布局优化方案
7.1 整体布局结构
7.2 工单信息只读区(扩展现有 el-descriptions)
现有字段保持,新增第三行:
| 客户名称 | 工件/成品名称 | 产品批次 | 执行标准(只读占位) | 工序路线 |
7.3 A. 基础信息(默认展开)
| 字段 |
控件 |
默认值 |
必填 |
字典按钮 |
| 报工人 |
el-select |
当前登录用户 |
是 |
— |
| 报工时间 |
el-date-picker datetime |
当前时间 |
是 |
— |
| 报工类型 |
el-select(production_report_type) |
NORMAL |
是 |
✅ |
| 班次 |
el-select(sys_shift_type) |
空 |
否 |
✅ |
| 班组 |
el-select(production_team) |
空 |
否 |
✅ |
| 执行标准 |
el-input |
空 |
否 |
— |
| 车间 |
el-select |
用户工位绑定 |
是 |
— |
| 工位 |
el-select |
用户工位绑定 |
是 |
— |
7.4 B. 数量信息(默认展开)
| 字段 |
控件 |
默认值 |
说明 |
| 计划数(只读) |
文本展示 |
= workOrder.quantity |
自动回显 |
| 报工数量 |
el-input-number |
— |
必填 |
| 合格数量 |
el-input-number |
= 报工数量 |
质检后修改 |
| 不合格数量 |
el-input-number |
0 |
自动 = 报工数 - 合格数 |
| 良品率(只读) |
百分比 + 颜色 |
自动计算 |
>=95%绿/90-95%橙/<90%红 |
7.5 C. 时间节拍(默认折叠)
| 字段 |
控件 |
默认值 |
说明 |
| 计划开始时间(只读) |
文本展示 |
= processStartTime(工单 process_start_time) |
自动回显 |
| 计划完工时间(只读) |
文本展示 |
= processStartTime + duration(工单工序明细 WorkOrderEntry.duration) |
自动回显 |
| 实际开始时间 |
el-date-picker datetime |
= plan_start_time |
离散/连续均有 |
| 实际完工时间 |
el-date-picker datetime |
= plan_end_time |
离散/连续均有 |
| 理论节拍(分钟/件) |
el-input-number |
空 |
手动,OEE参考 |
| 停机时间(分钟) |
el-input-number |
0 |
离散/连续均有 |
| 停机原因 |
el-input |
空 |
停机时间>0时高亮提示填写 |
7.6 D. 成本效益(默认折叠)
| 字段 |
控件 |
默认值 |
说明 |
| 绩效工资 |
el-input-number |
0 |
手动 |
| 能耗 |
el-input-number |
0 |
手动 |
| 工耗 |
el-input-number |
0 |
手动 |
| 其他成本 |
el-input-number |
0 |
手动 |
| 增值 |
el-input-number |
0 |
手动 |
| 工位OEE |
el-input-number(暂可编辑) |
空 |
前端计算,公式待完善 |
| 本次效益(自动) |
数字展示 + 颜色 |
自动计算 |
= 增值-能耗-工耗-其他 |
| 是否结算工资 |
el-select(sys_yes_no) |
N |
可编辑(原只读改为可编辑) |
| 结算工资 |
el-input-number |
0 |
可编辑(原只读改为可编辑) |
7.7 E. 异常记录(默认折叠,有内容标题变红)
| 字段 |
控件 |
默认值 |
| 工位异常情况 |
el-input textarea |
空 |
| 整改建议 |
el-input textarea |
空 |
| 备注 |
el-input textarea |
空(已有字段移至此处) |
八、移动端适配要求(重要)
移动端适配为本次升级的重点之一,与 PC 端同等优先级。
8.1 折叠面板
- 移动端(
isMobile === true)所有分组默认全部展开
- 折叠/展开控制隐藏(移动端无折叠手势)
8.2 布局
- 所有字段单列排布(
el-col :xs="24")
- PC 端双列(
el-col :sm="12")
8.3 控件适配
el-date-picker 使用 type="datetime",移动端保持原生表现
el-input-number 设置 controls-position="right" 避免移动端误触
- 字典编辑按钮在移动端隐藏(
v-if="!isMobile"),按你确认项 #4 执行
8.4 工单信息只读区
- 移动端改为竖向列表(
el-descriptions direction="vertical")
- 每项占满整行
8.5 按钮区
- 底部操作按钮固定(
position: sticky; bottom: 0)
- 保存按钮宽度 100%
九、SQL 变更清单
见文件 .sql/2026-03-03_v2.0.003_周启威_报工单升级优化.sql
| 操作 |
说明 |
| ALTER TABLE pro_report ADD COLUMN... |
新增 27 个字段(shift_name/downtime_minutes/downtime_reason 已有,不在本 SQL 中) |
| 移除 report_count |
与 report_quantity 重复,已从 SQL 删除,附注释说明 |
| 移除 quality_check_status |
与 quality_status 重复,已从 SQL 删除,附注释说明 |
| is_settle / wages 改为可编辑 |
数据库字段不变,仅前端去掉 disabled,SQL 注释说明 |
| 新增字典 production_report_type |
4个枚举值 |
| 新增字典 production_team |
甲/乙/丙班(字典管理中可维护) |
| 新增索引 idx_customer_id 等 |
4个索引 |
必填项核对(以你项目现状为准,不做“强行 NOT NULL 创新”):
pro_report 现有核心字段为强制必填(数据库 NOT NULL):
work_order_entry_id、report_user_id、report_user_name、report_channel、status、create_by、create_time、report_time、report_quantity、is_settle、wages
- 本次新增字段在 SQL 中均为
DEFAULT NULL 或有默认值(如成本类默认 0、report_type 默认 NORMAL)。原因:
- 兼容历史数据/已存在报工单记录
- 避免上线时因存量数据缺字段导致迁移失败
- 业务必填更多应由前端校验/后端保存校验保证
⚠️ SQL 执行后后端必须同步:Report.java 三处 @TableField(exist=false) 需删除
⚠️ 前端 form.vue dicts 数组需补充两个新字典类型
⚠️ processStartTime 为空时的 fallback 策略
pro_workorder.process_start_time 在未排产/未开工时可能为 null。
前端回显逻辑(优先级依次降低):
- 优先使用
form.processStartTime
- 若为空,fallback 用
form.beginProDate(工单开始生产日期)
- 若仍为空,
plan_start_time 显示为空,用户手动填写
十、工作量评估
图例:XS <2h|S 半天|M 1天|L 2天
| 模块 |
内容 |
工作量 |
| SQL 执行 |
已写好,执行即可 |
XS |
| 后端实体 |
Report.java 新增 27 字段;删除 processName/processId/customerName 的 @TableField(exist=false) |
S |
| 后端 Mapper |
XML 增删字段映射(INSERT/SELECT) |
S |
| 后端 Service |
insertReport 时将已有字段赋值到新列(直接复制,无额外查询) |
S |
| 前端工单信息区 |
el-descriptions 扩展新只读字段 |
XS |
| 前端字典按钮 |
openDictEdit 方法 + 3处按钮 |
XS |
| 前端表单重构(PC) |
form.vue + formA.vue 折叠分组布局 |
L |
| 前端表单重构(移动端) |
响应式布局、全展开、按钮固定 |
M |
| 前端计算逻辑 |
良品率/本次效益实时计算;OEE 暂编辑框 |
S |
| 联调测试 |
自动回显验证、计算验证、移动端真机测试 |
S |
| 合计 |
|
约 4 个工作日 |
十一、实施顺序建议
| 顺序 |
任务 |
依赖 |
| 1 |
执行 SQL 脚本 |
无 |
| 2 |
后端实体 + Mapper + Service |
SQL 完成后 |
| 3 |
前端工单信息区扩展(快速见效) |
后端完成后 |
| 4 |
前端折叠表单重构(PC) |
— |
| 5 |
前端移动端适配 |
步骤4基础上 |
| 6 |
字典编辑按钮 |
— |
| 7 |
联调测试 + 修复 |
全部完成后 |
十二、待确认事项(你确认后再进入代码实现)
| 序号 |
待确认点 |
当前文档建议 |
影响范围 |
| 1 |
customer_name/customer_id 是否必须存在 |
按业务应必有;若线上仍出现 null,需明确是否允许为空,并决定 customer_id 获取方式(查询返回 or 保存时回填) |
后端查询/保存逻辑、前端只读展示 |
| 2 |
plan_start_time 的准确来源字段 |
已按你确认:使用工单 process_start_time(processStartTime) |
后端赋值、前端只读展示 |
| 3 |
plan_end_time 的工序时长 duration 来源 |
已按你确认:使用工单工序明细 WorkOrderEntry.duration |
后端赋值、前端只读展示 |
| 4 |
移动端是否需要“字典快捷按钮” |
已按你确认:移动端隐藏 |
前端交互设计 |
十三、项目内可复用点(能复用就不创新)
13.1 字段与表结构复用(避免新造字段名)
| 目标 |
复用项 |
位置 |
| 计划开始时间来源 |
pro_workorder.process_start_time / WorkOrder.processStartTime |
WorkOrder.java + WorkOrderMapper.xml 已映射 |
| 工序时长来源 |
pro_workorder_entry.duration / WorkOrderEntry.duration(秒) |
WorkOrderEntry.java 已存在 |
| 工单-工序明细联动 |
工单查询已 left join pro_workorder_entry 并返回 workOrderEntryList |
WorkOrderMapper.xml 的 selectWorkOrderVo |
13.2 时间计算逻辑复用(不自写新公式)
项目内已有工具类:cn.sourceplan.production.util.RouteTimeCalculator
- 连续制造:使用等待开始时间
waitStartTime + duration
- 离散制造:顺序推进 + 转运时间
transferTime + duration
本次仅需“单工序的 plan_start_time/plan_end_time”时:优先直接用
plan_start_time = workOrder.processStartTime
plan_end_time = plan_start_time + workOrderEntry.duration
若后续需要“整条路线的各工序时间”再复用 RouteTimeCalculator.calculateProcessTimes(...),不在本次强行扩展。
13.3 前端打开字典维护页复用
项目内已有页签能力:this.$tab.openPage(title, path)(见 mes-ui/src/plugins/tab.js)
本次字典快捷按钮仅在 PC 显示:
- 复用
@/api/system/dict/type 的 listType 查询 dictId
- 再用
$tab.openPage 打开 /system/dict/data/{dictId}
13.4 报工现有字段复用(不新增重复字段)
报工表 pro_report 现有已具备(尤其连续制造已在使用):
shift_name、report_period_start、report_period_end
downtime_minutes、downtime_reason
本次升级仅做“离散/连续统一支持 + UI 分组优化 + 新增成本/效益字段持久化”,不重复造相同语义字段。
十四、字段来源全景说明(项目模块 + 行业参考)
本节结合本系统实际模块关系,以及 SAP PP / Oracle MES / 用友U9C / 金蝶云星空等行业主流 MES 系统的报工单设计,说明每个字段在实际生产场景中的来源和意义。
14.1 A 区 — 基础信息字段
| 字段 |
本系统来源模块 |
本系统来源表/字段 |
行业做法参考 |
report_user_id / report_user_name |
系统用户模块 |
sys_user.user_id / nick_name,前端当前登录用户 |
SAP PP:Operator ID,由 HR 工号绑定;Oracle:Resource Person 来自员工主数据 |
report_time |
前端自动 |
当前时间 new Date(),用户可修改(补报场景) |
通用做法:默认系统时间,允许补报修改;SAP PP 称 Confirmation Date |
report_type |
字典模块 |
sys_dict_data(字典类型 production_report_type,本次新增) |
SAP PP:Confirmation Type(正式/取消/返工);用友U9C:报工类型(正常/返工/补报);金蝶:报工性质 |
shift_name |
字典模块 |
sys_dict_data(字典类型 sys_shift_type,原有字典) |
全行业标配;SAP PP 称 Shift,从工厂日历继承;Oracle MES 称 Shift Code |
team_name / team_id |
字典模块 |
sys_dict_data(字典类型 production_team,本次新增);team_id 存字典 remark 字段 |
SAP PP:Work Center Group;金蝶云星空:生产班组(独立主数据);用友U9C:班组来自 HR 班组台账 |
execution_standard |
手动录入 |
无系统来源,用户自填(如 GB/T 标准号) |
ISO 9001 要求;SAP PP:Control Key 间接关联作业标准;食品/化工行业强制要求 |
workshop_id / workshop_name |
车间工位模块 |
pro_workshop.id / name,getWorkshops() API 加载 |
全行业标配;SAP PP:Plant + Work Center 两级;本系统:车间→工位两级结构 |
station_id / station_name |
车间工位模块 |
pro_station.id / name,级联车间下拉 |
SAP PP:Work Center;Oracle MES:Resource / Machine;金蝶:工作中心 |
14.2 B 区 — 数量信息字段
| 字段 |
本系统来源模块 |
本系统来源表/字段 |
行业做法参考 |
plan_count |
生产工单模块 |
pro_workorder.quantity(工单排产总数),insertReport 时自动填入 |
SAP PP:Order Quantity;Oracle MES:Job Quantity;全行业报工必带,用于进度对比 |
report_quantity |
手动录入(必填) |
用户输入本次完成数量 |
SAP PP:Yield Quantity;Oracle:Transaction Quantity;金蝶:完工数量 |
qualified_quantity |
手动录入 / 质检回填 |
用户输入或质检单确认后回填;触发良品率实时计算 |
SAP PP:Confirmed Yield;用友U9C:合格数量来自质检单;金蝶:合格入库数量 |
unqualified_quantity |
前端计算 |
= report_quantity - qualified_quantity,前端实时计算后保存持久化 |
SAP PP:Scrap Quantity;Oracle:Rejected Quantity;全行业通常自动推算 |
yield_rate |
前端计算 |
= qualified_quantity / report_quantity × 100,前端实时计算 |
SAP PP:由 QM 模块统计;Oracle MES:Yield %;化工/食品行业生产 KPI 核心指标 |
14.3 C 区 — 时间节拍字段
| 字段 |
本系统来源模块 |
本系统来源表/字段 |
行业做法参考 |
plan_start_time |
生产工单模块 |
pro_workorder.process_start_time,insertReport 时自动填入 |
SAP PP:Scheduled Start Date,来自 MRP/APS 排程结果;本系统暂由工单手工维护 |
plan_end_time |
工单模块 + 工序明细 |
= process_start_time + pro_workorder_entry.duration(秒);前端 fillDefaultPlanEndTime 计算默认值,可手动修改 |
SAP PP:Scheduled Finish Date,由 Work Center 标准工时自动推算;Oracle:Scheduled End Date |
actual_start_time |
手动录入(默认=计划开始) |
默认 = plan_start_time,用户调整为实际打卡/扫码时间 |
SAP PP:Actual Start Date;Oracle MES:Actual Start,常由 WIP 事务自动记录;金蝶:实际开工时间 |
actual_end_time |
手动录入(默认=计划完工) |
默认 = plan_end_time,用户调整为实际完成时间 |
SAP PP:Actual Finish Date;是工时统计和效率分析的核心数据 |
theoretical_cycle_time |
手动录入 |
来自 IE 工业工程部门的标准工时,单位:分钟/件,系统无自动来源 |
SAP PP:Standard Work(每件标准工时)来自 Routing 工艺路线主数据;本系统暂无 IE 模块,手工录入 |
downtime_minutes |
手动录入(已有字段) |
pro_report.downtime_minutes,原连续制造已用,本次离散开放 |
SAP PM:Breakdown Duration;Oracle MES:Downtime 来自 EAM 设备维护模块;金蝶:停机时长 |
downtime_reason |
手动录入(已有字段) |
pro_report.downtime_reason,原连续制造已用 |
SAP PM:Notification Type;行业做法建议结合停机原因字典;本系统暂为自由文本 |
report_submit_time |
后端自动写入 |
new Date() 于 insertReport 保存时写入,不暴露前端 |
全行业通用审计时间戳;SAP 称 Posting Date;用于识别补报行为 |
14.4 D 区 — 成本效益字段
| 字段 |
本系统来源模块 |
本系统来源表/字段 |
行业做法参考 |
performance_wages |
手动录入 / 薪资模块(待接) |
用户填写;未来可由薪资结算模块推送计件工资 |
SAP HR:Labor Cost,工时×工资率由 CO 成本中心自动计算;本系统暂无薪资模块 |
energy_consumption |
手动录入 / 设备模块(待接) |
用户填写能耗数值(如 kWh);未来可对接设备能耗传感器自动采集 |
行业称 Utility Cost;SAP PP 通过活动类型 Activity Type=Power 自动计算;化工/食品行业必填 |
material_consumption |
手动录入 / 领料模块(待接) |
用户填写工耗;系统已有领料单 pro_pick,暂未自动关联金额 |
SAP PP:Goods Movement 261 领料冲减,BOM 消耗量自动计算;本系统有领料流程但报工暂不自动带入 |
other_costs |
手动录入 |
用户填写其他杂项成本 |
SAP CO:Overhead Cost(制造费用分摊);本系统暂无分摊机制 |
value_added |
手动录入 |
用户填写本道工序产生的增值(如加工费、工序增值) |
SAP PP+CO:Value Added = Confirmed Activity × Price;金蝶云星空:工序增值来自 BOM 标准成本;本系统暂手工 |
station_oee |
手动录入(暂)/ 设备模块(待接) |
用户手填百分比(0-100);OEE = 可用率 × 性能率 × 质量率 |
全行业 KPI 标配;SAP MII / Oracle MES 由设备数据自动计算;本系统已有 pro_equipment,后续可自动化 |
current_benefit |
前端计算 |
= value_added - energy_consumption - material_consumption - other_costs,前端实时计算 |
SAP CO:Contribution Margin(贡献毛利);金蝶:毛利;精益生产看板核心指标 |
is_settle |
薪资结算模块 |
pro_report.is_settle(Y/N),本次改为可编辑;薪资结算完成后更新 |
SAP HR:工资确认标志;金蝶 HR:计件结算状态;报工→薪资结算两步确认标准流程 |
wages |
薪资结算模块 |
pro_report.wages,实际结算工资金额,本次改为可编辑 |
SAP HR:Piece Rate Pay(计件工资);用友U9C:报工工资,由薪资引擎批量计算后写回 |
14.5 E 区 — 异常记录字段
| 字段 |
本系统来源模块 |
本系统来源表/字段 |
行业做法参考 |
station_exception |
手动录入 |
pro_report.station_exception,用户描述工位发生的异常 |
SAP QM:Quality Notification(质量通知单);Oracle MES:NCR(Non-Conformance Report);金蝶:生产异常记录;行业通常为独立异常模块,本系统暂为报工附属字段 |
rectification_suggestion |
手动录入 |
pro_report.rectification_suggestion,班长/用户填写整改建议 |
来自精益生产 PDCA 循环的 Act 环节;SAP QM:Corrective Action;ISO 9001 纠正措施记录 |
remark |
手动录入(已有字段) |
BaseEntity.remark,通用备注 |
全行业通用自由文本字段 |
14.6 自动回显字段来源追溯
| 字段 |
来源路径(从销售到报工单) |
行业做法参考 |
customer_name / customer_id |
sal_order(销售模块)→ pro_workorder.customer_name(工单 JOIN 查询)→ pro_report.customer_name(报工时自动填入) |
SAP PP:客户信息通过 Sales Order → Production Order 链路从 SD 模块传递;食品行业定制生产必须追溯到客户 |
workpiece |
pro_workorder.material_name(工单模块)→ pro_report.workpiece(报工时自动填入) |
SAP PP:Material Description;Oracle MES:Item Description;直观展示生产对象名称 |
product_batch |
pro_workorder.batch_number(工单/批次管理模块)→ pro_report.product_batch |
SAP:Batch Number,食品/制药全程追溯;Oracle MES:Lot Number;本系统工单创建时手工维护批次 |
process_name / process_id |
pro_route_process(工艺路线模块)→ pro_workorder_entry(工单工序明细)→ pro_report.process_name / process_id |
SAP PP:Operation(工序)来自 Routing(工艺路线主数据);Oracle MES:Operation Code |
plan_start_time |
pro_workorder.process_start_time(工单排程时间)→ pro_report.plan_start_time |
SAP PP:来自 MRP/APS 排程;本系统暂工单手工维护 |
plan_end_time |
pro_workorder.process_start_time + pro_workorder_entry.duration(秒)→ 前端计算 → pro_report.plan_end_time |
SAP PP:由 Work Center 标准工时自动推算;本系统用 RouteTimeCalculator 可扩展 |
plan_count |
pro_workorder.quantity(工单排产数量)→ pro_report.plan_count |
SAP PP:Order Quantity 直接传递 |
14.7 系统能力评估(与行业对标)
| 维度 |
本系统升级后 |
SAP PP 标准 |
差距与后续规划 |
| 基础信息 |
报工人、时间、类型、班次、班组、工位 ✅ |
同等,另有 HR 工号强绑定 |
班组可升级为独立主数据模块 |
| 数量追踪 |
计划数、报工数、合格数、不合格数、良品率 ✅ |
同等,另有废品原因代码字段 |
可增加废品原因字典字段 |
| 时间管理 |
计划/实际开始完工、节拍、停机时间 ✅ |
同等,另有 Setup Time(换线准备时间) |
可增加 setup_time 字段 |
| 成本核算 |
绩效工资、能耗、工耗、其他成本、增值、效益 ✅(手工录入) |
SAP CO 基于 BOM + 活动类型自动计算 |
后续对接领料单/能耗传感器实现自动化 |
| 质量管理 |
良品率、工位异常、整改建议 ✅(基础) |
独立 QM 质量通知单,流程完整 |
本系统已有质检单模块,异常字段为补充 |
| 设备效率 |
OEE 暂手工、理论节拍 ⚠️ |
SAP MII 自动采集设备数据计算 OEE |
本系统已有 pro_equipment,后续可自动计算 |
| 追溯链路 |
客户→工单→工序→报工单 ✅ |
销售订单→生产订单→工序→确认单,完整 |
本系统已完整,通过 sourceInfo JSON 关联销售订单 |