feat(mes): 添加定时同步可生产数量到WMS及BOM项相关标准字段
- 在main.go中添加定时任务每10分钟同步可生产数量到WMS系统 - 为BomItem实体添加relatedStandard字段及相关CRUD方法 - 为InspectionRecord实体添加reportNo、materialCode、materialName等字段 - 更新ent schema确保新字段的验证和默认值设置 - 添加必要的数据库迁移和字段映射逻辑
This commit is contained in:
@@ -35,6 +35,7 @@ func (BomItem) Fields() []ent.Field {
|
||||
field.Int("processCode").Default(0).Comment("装配工序 1~12,0=不参与工位绑定"),
|
||||
field.Float("unitQty").Default(0).Comment("单台用量"),
|
||||
field.Float("lossRate").Default(0).Comment("损耗率%"),
|
||||
field.String("relatedStandard").Default("").MaxLen(255).Comment("相关标准(检验细则)"),
|
||||
field.Float("requiredQty").Default(0).Comment("需求总量=总台数*单台*(1+损耗)"),
|
||||
field.JSON("serialSns", []string{}).Optional().SchemaType(map[string]string{
|
||||
dialect.Postgres: "jsonb",
|
||||
|
||||
@@ -11,8 +11,10 @@ import (
|
||||
"entgo.io/ent/schema/index"
|
||||
)
|
||||
|
||||
// InspectionRecord 巡检记录(PAD 巡检终端):
|
||||
// 开工签到 CHECKIN / 工位点检 POINT / 过程巡检 PROCESS / 完工确认 DONE / 异常上报 ALARM
|
||||
// InspectionRecord 巡检与质量检验记录(PAD 巡检终端 + MES 质量检验录入共用):
|
||||
// PAD 巡检:开工签到 CHECKIN / 工位点检 POINT / 过程巡检 PROCESS / 完工确认 DONE / 异常上报 ALARM
|
||||
// MES 质量检验(来料/过程/完工三分,表不变):来料检 INCOMING(来料在 WMS 已做,仍落本表) / 过程检 QC_PROCESS / 完工检 FINAL
|
||||
// 注:过程检用 QC_PROCESS 与 PAD 过程巡检 PROCESS 隔离,避免同枚举列表互混(P1-8)。
|
||||
type InspectionRecord struct {
|
||||
ent.Schema
|
||||
}
|
||||
@@ -24,7 +26,7 @@ func (InspectionRecord) Annotations() []schema.Annotation {
|
||||
func (InspectionRecord) Fields() []ent.Field {
|
||||
return []ent.Field{
|
||||
field.Int("id").Positive(),
|
||||
field.String("category").MaxLen(20).Comment("记录类型 CHECKIN/POINT/PROCESS/DONE/ALARM"),
|
||||
field.String("category").MaxLen(20).Comment("记录类型 CHECKIN/POINT/PROCESS/DONE/ALARM/INCOMING/FINAL/QC_PROCESS"),
|
||||
field.String("stationNo").Default("").MaxLen(32).Comment("工位号"),
|
||||
field.String("shift").Default("").MaxLen(20).Comment("班次 早/中/晚"),
|
||||
field.String("orderNo").Default("").MaxLen(64).Comment("工单号"),
|
||||
@@ -42,6 +44,15 @@ func (InspectionRecord) Fields() []ent.Field {
|
||||
field.Int("stepId").Default(0).Comment("工艺步骤ID(过程巡检逐条关联)"),
|
||||
field.String("stepName").Default("").MaxLen(128).Comment("工艺步骤名称"),
|
||||
field.String("measuredValue").Default("").MaxLen(64).Comment("实测值(过程巡检录入)"),
|
||||
// 质量检验(过程检/完工检/来料检)扩展字段
|
||||
field.String("reportNo").Default("").MaxLen(64).Comment("报检单号"),
|
||||
field.String("materialCode").Default("").MaxLen(64).Comment("物料编码(图号)"),
|
||||
field.String("materialName").Default("").MaxLen(128).Comment("物料名称"),
|
||||
field.String("manufacturer").Default("").MaxLen(128).Comment("生产厂家"),
|
||||
field.String("inspectionNo").Default("").MaxLen(64).Comment("检验单号"),
|
||||
field.String("attachmentIds").Default("").MaxLen(512).Comment("附件ID,逗号分隔(关联 attachment 表)"),
|
||||
field.String("disposalType").Default("").MaxLen(20).Comment("处置类型 退货/返修/退换"),
|
||||
field.String("disposalRemark").Default("").MaxLen(500).Comment("处置说明"),
|
||||
field.Time("createdAt").Default(time.Now).Immutable(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"time"
|
||||
|
||||
"entgo.io/ent"
|
||||
"entgo.io/ent/dialect"
|
||||
"entgo.io/ent/dialect/entsql"
|
||||
"entgo.io/ent/schema"
|
||||
"entgo.io/ent/schema/field"
|
||||
@@ -28,6 +29,10 @@ func (ProcessStep) Fields() []ent.Field {
|
||||
field.String("collectType").Default("NONE").MaxLen(20).Comment("AUTO/MANUAL/NONE"),
|
||||
field.Bool("isTorque").Default(false).Comment("是否拧紧采集"),
|
||||
field.Bool("needCheck").Default(false).Comment("是否需要检测确认(报工前须检验通过)"),
|
||||
// 本步骤图纸/附件(按工序分发到工位终端),多份,存 {name,url} 列表
|
||||
field.JSON("attachment", []map[string]string{}).Optional().SchemaType(map[string]string{
|
||||
dialect.Postgres: "jsonb",
|
||||
}).Comment("本步骤图纸/附件列表 [{name,url}]"),
|
||||
field.String("remark").Default("").MaxLen(255),
|
||||
field.Time("createdAt").Default(time.Now).Immutable(),
|
||||
}
|
||||
|
||||
@@ -35,6 +35,9 @@ func (WorkOrder) Fields() []ent.Field {
|
||||
field.String("contractNo").Default("").MaxLen(64).Comment("合同编号"),
|
||||
field.String("projectNo").Default("").MaxLen(64).Comment("工程编号(一个合同对应一个工程编号)"),
|
||||
field.String("productSerial").Default("").MaxLen(64).Comment("产品序号(一个工程编号下各产品的序号)"),
|
||||
// 创建人(取当前登录用户)+ 完成日期(必填)
|
||||
field.String("createdBy").Default("").MaxLen(64).Comment("创建人"),
|
||||
field.Time("dueDate").Optional().Nillable().Comment("完成日期(必填)"),
|
||||
// CREATED / RELEASED / IN_PROGRESS / COMPLETED / CLOSED
|
||||
field.String("status").Default("CREATED").MaxLen(20),
|
||||
field.Time("planStart").Optional().Nillable().Comment("计划开始"),
|
||||
|
||||
@@ -33,6 +33,7 @@ func (WorkpieceProcess) Fields() []ent.Field {
|
||||
field.String("result").Default("OK").MaxLen(10).Comment("总判定 OK/NG"),
|
||||
field.Time("startedAt").Optional().Nillable(),
|
||||
field.Time("endedAt").Optional().Nillable(),
|
||||
field.Int("durationSec").Default(0).Comment("作业时长(秒)=endedAt-startedAt"),
|
||||
field.String("remark").Default("").MaxLen(255),
|
||||
field.Time("createdAt").Default(time.Now).Immutable(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user