feat(jobs): add fp.job.step model with state machine

Per-operation model replacing mrp.workorder for plating. Each step
instantiates from a recipe operation node (recipe_node_id link).
Container/step nodes from the recipe template are rendered at view
time via that link — they don't get rows here. See spec §5.2
Option A.

7-state machine: pending → ready → in_progress → done, plus
paused, skipped, cancelled. button_start/button_finish enforce
the transitions.

Job header gets step_ids + step_count, step_done_count,
step_progress_pct, current_step_id (computed from steps).

Equipment, audit fields, plating-spec fields, time logs, and
release-ready validation come in Tasks 1.6 and 1.7.

Manifest 19.0.8.3.1 → 19.0.8.4.0.

Part of: native job model migration (spec 2026-04-25)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-24 21:59:07 -04:00
parent f7a4cba5a8
commit c41a488b58
7 changed files with 218 additions and 1 deletions

View File

@@ -50,3 +50,6 @@ access_fp_work_centre_manager,fp.work.centre.manager,model_fp_work_centre,fusion
access_fp_job_operator,fp.job.operator,model_fp_job,fusion_plating.group_fusion_plating_operator,1,1,0,0
access_fp_job_supervisor,fp.job.supervisor,model_fp_job,fusion_plating.group_fusion_plating_supervisor,1,1,1,0
access_fp_job_manager,fp.job.manager,model_fp_job,fusion_plating.group_fusion_plating_manager,1,1,1,1
access_fp_job_step_operator,fp.job.step.operator,model_fp_job_step,fusion_plating.group_fusion_plating_operator,1,1,0,0
access_fp_job_step_supervisor,fp.job.step.supervisor,model_fp_job_step,fusion_plating.group_fusion_plating_supervisor,1,1,1,0
access_fp_job_step_manager,fp.job.step.manager,model_fp_job_step,fusion_plating.group_fusion_plating_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
50 access_fp_job_operator fp.job.operator model_fp_job fusion_plating.group_fusion_plating_operator 1 1 0 0
51 access_fp_job_supervisor fp.job.supervisor model_fp_job fusion_plating.group_fusion_plating_supervisor 1 1 1 0
52 access_fp_job_manager fp.job.manager model_fp_job fusion_plating.group_fusion_plating_manager 1 1 1 1
53 access_fp_job_step_operator fp.job.step.operator model_fp_job_step fusion_plating.group_fusion_plating_operator 1 1 0 0
54 access_fp_job_step_supervisor fp.job.step.supervisor model_fp_job_step fusion_plating.group_fusion_plating_supervisor 1 1 1 0
55 access_fp_job_step_manager fp.job.step.manager model_fp_job_step fusion_plating.group_fusion_plating_manager 1 1 1 1