refactor: 重构工艺工序相关命名与数据模型

1.  全局替换"工序"为"工艺"统一术语,包括页面文案、枚举、注释
2.  重构工单与工件工艺数据模型:
    - 新增工艺组合表flow_material作为备料/齐套唯一源头
    - 新增工位状态表station_state支持自主停单/恢复接单
    - 移除station_process派工表,改用工单工艺组合作为路线唯一源头
    - 替换processCode为flowId作为工艺关联标识
    - 重构工件当前进度字段为currentStationNo
3.  删除冗余的静态备份资源文件
4.  调整物料选择组件默认启用仅显示激活物料
5.  优化工单创建/编辑逻辑,新增工艺组合校验与保存
This commit is contained in:
SunYF
2026-09-22 11:32:29 +08:00
parent 932700ca65
commit d609ff8a9e
185 changed files with 8623 additions and 4501 deletions
+17 -6
View File
@@ -90,10 +90,6 @@ func EnsureDB(c DatabaseConf) error {
// schemaPatchSQL 幂等列补丁:ent Schema.Create 只建缺失的新表,绝不会给既有表加列;
// 因此对"已有表新增列"的场景必须走显式 ALTER。这里统一维护补丁清单,migrate/seed/reset-all 三入口共用。
var schemaPatchSQL = []string{
// BOM 料增加"装配工序"维度(0=不参与工位绑定校验;1~12=在第几道工序装配)
// 注意:BomItem schema 表名注解为 work_order_bom(非默认名)
`ALTER TABLE work_order_bom ADD COLUMN IF NOT EXISTS process_code integer NOT NULL DEFAULT 0`,
// 第三批:工程编号三级归属(合同号 → 工程编号 → 产品序号)
`ALTER TABLE work_order ADD COLUMN IF NOT EXISTS contract_no varchar(64) NOT NULL DEFAULT ''`,
`ALTER TABLE work_order ADD COLUMN IF NOT EXISTS project_no varchar(64) NOT NULL DEFAULT ''`,
@@ -152,7 +148,7 @@ var schemaPatchSQL = []string{
`UPDATE station SET is_builtin = true WHERE station_no BETWEEN 0 AND 13`,
`UPDATE station SET has_dock = true WHERE station_no BETWEEN 1 AND 10`,
// ---- 本次重构:删除工位组合/接驳台冗余字段,改用关联表 station_process + station.dock_code 驱动 ----
// ---- 历史重构:删除工位组合/接驳台冗余字段,改用 station.dock_code 驱动 ----
`ALTER TABLE work_order DROP COLUMN IF EXISTS process_seq`,
`ALTER TABLE workpiece DROP COLUMN IF EXISTS process_seq`,
`ALTER TABLE daily_plan DROP COLUMN IF EXISTS dock_codes`,
@@ -164,7 +160,6 @@ var schemaPatchSQL = []string{
`CREATE UNIQUE INDEX IF NOT EXISTS ux_station_dock_code ON station (dock_code) WHERE dock_code <> ''`,
// 备料单工位级 + 分批出库
`ALTER TABLE material_request ADD COLUMN IF NOT EXISTS station_no integer NOT NULL DEFAULT 0`,
`ALTER TABLE material_request ADD COLUMN IF NOT EXISTS process_code integer NOT NULL DEFAULT 0`,
`ALTER TABLE material_request ADD COLUMN IF NOT EXISTS sent_qty double precision NOT NULL DEFAULT 0`,
`ALTER TABLE material_request ADD COLUMN IF NOT EXISTS batch_no varchar(64) NOT NULL DEFAULT ''`,
// 日排产各工位产量分配
@@ -188,6 +183,22 @@ var schemaPatchSQL = []string{
// ---- 接驳台主数据迁入 MES2026-09-21,真源自 WMS 移入)----
// 工位↔接驳台 1:1:部分唯一索引只约束已绑定工位(station_no>0)的行,库房/其他接驳台不参与。
`CREATE UNIQUE INDEX IF NOT EXISTS ux_dock_station_no ON dock (station_no) WHERE station_no > 0`,
// ---- 生产模型重构(2026-09-22 定稿):删除「工序编号/工位派工」旧模型遗留 ----
// 路线唯一源头 = 工单工艺组合 flow_combination[{flowId,stationNo}],工位号即顺序号);
// 装配绑定/备料/齐套全部改走工艺物料清单 flow_materialbom_item/material_request/process_code 退役。
`DROP TABLE IF EXISTS station_process`,
`ALTER TABLE workpiece_process DROP COLUMN IF EXISTS process_code`,
`ALTER TABLE workpiece_bind DROP COLUMN IF EXISTS process_code`,
`ALTER TABLE material_request DROP COLUMN IF EXISTS process_code`,
`ALTER TABLE work_order_bom DROP COLUMN IF EXISTS process_code`,
`ALTER TABLE workpiece DROP COLUMN IF EXISTS current_process`,
// 既有库补列(新装库由 ent AutoMigrate 直接建出,此处幂等兜底)
`ALTER TABLE work_order ADD COLUMN IF NOT EXISTS flow_combination jsonb`,
`ALTER TABLE workpiece ADD COLUMN IF NOT EXISTS current_station_no integer NOT NULL DEFAULT 0`,
`ALTER TABLE workpiece_process ADD COLUMN IF NOT EXISTS flow_id integer NOT NULL DEFAULT 0`,
`ALTER TABLE workpiece_bind ADD COLUMN IF NOT EXISTS flow_id integer NOT NULL DEFAULT 0`,
`ALTER TABLE material_request ADD COLUMN IF NOT EXISTS flow_id integer NOT NULL DEFAULT 0`,
}
// EnsureSchema ent 建表 + 幂等列补丁(只增,不删数据)