refactor: 重构产线工位与备料流程,移除冗余字段
1. 移除工单、工件、日排产中的冗余工位组合/接驳台字段 2. 新增工位接驳台编码字段与唯一约束,关联WMS接驳台主数据 3. 重构日排产为工位产量分配模式,替代原接驳台列表 4. 新增备料单工位级字段与分批出库支持 5. 移除定时同步可生产数量,改为WMS实时拉取接口 6. 过滤操作日志,排除登录/退出相关日志 7. 调整仪表盘工序展示逻辑为今日派工路线 8. 新增接驳台维护菜单与基础数据
This commit is contained in:
@@ -27,11 +27,11 @@ func (DailyPlan) Fields() []ent.Field {
|
||||
field.String("planDate").MaxLen(10).Comment("排产日期 yyyy-MM-dd"),
|
||||
field.Int("planQty").Default(0).Comment("计划数量"),
|
||||
field.Int("completedQty").Default(0).Comment("已完成数量"),
|
||||
// 送达接驳台:排产时计划员确认该工单物料送达哪些接驳台 DOCK01..20(可多选)
|
||||
// 备料单生成时,该排产下所有物料行的 target_dock 取此处的 dock_codes。
|
||||
field.JSON("dockCodes", []string{}).Optional().SchemaType(map[string]string{
|
||||
// 各工位产量分配:stationNo(字符串键) → 该工位分配到的总计划产量。
|
||||
// 备料算料时,按「工位↔工序」派工(station_process) + 本分配,把 BOM 物料拆到工位级。
|
||||
field.JSON("stationPlanQty", map[string]int{}).Optional().SchemaType(map[string]string{
|
||||
dialect.Postgres: "jsonb",
|
||||
}).Comment("送达接驳台列表 DOCK01..20"),
|
||||
}).Comment("各工位产量分配 stationNo→计划产量"),
|
||||
// PENDING / PROCESSING / DONE
|
||||
field.String("status").Default("PENDING").MaxLen(20),
|
||||
field.String("operator").Default("").MaxLen(64),
|
||||
|
||||
@@ -33,6 +33,11 @@ func (MaterialRequest) Fields() []ent.Field {
|
||||
// PENDING / LOCKED / DELIVERING / DONE
|
||||
field.String("status").Default("PENDING").MaxLen(20),
|
||||
field.String("targetDock").Default("").MaxLen(20).Comment("目标接驳台 DOCK01..20"),
|
||||
// 工位级备料:物料送达的工位号(由 station_process 派工 + 日排产分配派生)
|
||||
field.Int("stationNo").Default(0).Comment("目标工位号(0=未指定)"),
|
||||
field.Int("processCode").Default(0).Comment("该物料所属装配工序(1~12)"),
|
||||
field.Float("sentQty").Default(0).Comment("已发料数量(分批出库累加)"),
|
||||
field.String("batchNo").Default("").MaxLen(64).Comment("发料批次号(分批出库时填写)"),
|
||||
field.String("operator").Default("").MaxLen(64),
|
||||
field.Time("createdAt").Default(time.Now).Immutable(),
|
||||
field.Time("updatedAt").Default(time.Now).UpdateDefault(time.Now).Optional().Nillable(),
|
||||
|
||||
@@ -36,6 +36,8 @@ func (Station) Fields() []ent.Field {
|
||||
// 是否有接驳台:对应实体位置(1~10 号工位各 2 个接驳台;0/11/12/13 无),
|
||||
// 由内置数据给定,页面不可手动更改。
|
||||
field.Bool("hasDock").Default(false).Comment("是否有接驳台(实体位置,内置不可改)"),
|
||||
// 引用接驳台编码(与 WMS dock.dock_code 对应,1:1):产线工位 DOCKn↔工位n,无接驳台则空
|
||||
field.String("dockCode").Default("").MaxLen(20).Comment("接驳台编码 DOCK01..21"),
|
||||
field.Time("createdAt").Default(time.Now).Immutable(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,5 +36,7 @@ func (StationProcess) Indexes() []ent.Index {
|
||||
index.Fields("stationNo"),
|
||||
index.Fields("effectDate"),
|
||||
index.Fields("stationNo", "effectDate"),
|
||||
// 同工位同天同班次唯一(派工覆盖式写入),防止备料算料翻倍
|
||||
index.Fields("stationNo", "effectDate", "shift").Unique(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ func (WorkOrder) Fields() []ent.Field {
|
||||
field.Int("quantity").Default(1).Comment("工件数量"),
|
||||
field.Int("finishedNum").Default(0).Comment("完成数量"),
|
||||
field.Int("failNum").Default(0).Comment("NG数量"),
|
||||
field.String("processSeq").Default("").MaxLen(64).Comment("工位组合,如 1,3,5(本工单要经过的工位,按序执行)"),
|
||||
// 工程编号体系(客户口径 问题记录 L580):合同 → 工程编号 → 产品序号
|
||||
field.String("contractNo").Default("").MaxLen(64).Comment("合同编号"),
|
||||
field.String("projectNo").Default("").MaxLen(64).Comment("工程编号(一个合同对应一个工程编号)"),
|
||||
|
||||
@@ -25,7 +25,6 @@ func (Workpiece) Fields() []ent.Field {
|
||||
field.String("sn").Unique().MaxLen(64).Comment("工件唯一SN"),
|
||||
field.String("orderNo").Default("").MaxLen(64).Comment("所属工单"),
|
||||
field.Int("workOrderId").Optional().Comment("工单ID"),
|
||||
field.String("processSeq").Default("").MaxLen(64).Comment("工序组合,如 135"),
|
||||
field.Int("currentProcess").Optional().Comment("当前进行到的工序码"),
|
||||
// ONLINE(已进线) / PROCESSING(在工位) / DONE(完工) / REPAIR / SCRAPPED
|
||||
field.String("status").Default("ONLINE").MaxLen(20),
|
||||
|
||||
Reference in New Issue
Block a user