feat(mes): 添加定时同步可生产数量到WMS及BOM项相关标准字段
- 在main.go中添加定时任务每10分钟同步可生产数量到WMS系统 - 为BomItem实体添加relatedStandard字段及相关CRUD方法 - 为InspectionRecord实体添加reportNo、materialCode、materialName等字段 - 更新ent schema确保新字段的验证和默认值设置 - 添加必要的数据库迁移和字段映射逻辑
This commit is contained in:
@@ -26,6 +26,12 @@ type StocktakeItem struct {
|
||||
MaterialCode string `json:"materialCode,omitempty"`
|
||||
// 所在区域
|
||||
ZoneCode string `json:"zoneCode,omitempty"`
|
||||
// 货架号(快照)
|
||||
ShelfNo string `json:"shelfNo,omitempty"`
|
||||
// 第几层(快照)
|
||||
LayerNo string `json:"layerNo,omitempty"`
|
||||
// 位置号(快照)
|
||||
PositionNo string `json:"positionNo,omitempty"`
|
||||
// 账面数量
|
||||
BookQty int `json:"bookQty,omitempty"`
|
||||
// 实盘数量,-1=未盘
|
||||
@@ -48,7 +54,7 @@ func (*StocktakeItem) scanValues(columns []string) ([]any, error) {
|
||||
values[i] = new(sql.NullBool)
|
||||
case stocktakeitem.FieldID, stocktakeitem.FieldBookQty, stocktakeitem.FieldScannedQty, stocktakeitem.FieldDiffQty, stocktakeitem.FieldUpdatedAt:
|
||||
values[i] = new(sql.NullInt64)
|
||||
case stocktakeitem.FieldStocktakeNo, stocktakeitem.FieldTargetType, stocktakeitem.FieldTargetID, stocktakeitem.FieldMaterialCode, stocktakeitem.FieldZoneCode:
|
||||
case stocktakeitem.FieldStocktakeNo, stocktakeitem.FieldTargetType, stocktakeitem.FieldTargetID, stocktakeitem.FieldMaterialCode, stocktakeitem.FieldZoneCode, stocktakeitem.FieldShelfNo, stocktakeitem.FieldLayerNo, stocktakeitem.FieldPositionNo:
|
||||
values[i] = new(sql.NullString)
|
||||
default:
|
||||
values[i] = new(sql.UnknownType)
|
||||
@@ -101,6 +107,24 @@ func (_m *StocktakeItem) assignValues(columns []string, values []any) error {
|
||||
} else if value.Valid {
|
||||
_m.ZoneCode = value.String
|
||||
}
|
||||
case stocktakeitem.FieldShelfNo:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field shelf_no", values[i])
|
||||
} else if value.Valid {
|
||||
_m.ShelfNo = value.String
|
||||
}
|
||||
case stocktakeitem.FieldLayerNo:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field layer_no", values[i])
|
||||
} else if value.Valid {
|
||||
_m.LayerNo = value.String
|
||||
}
|
||||
case stocktakeitem.FieldPositionNo:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field position_no", values[i])
|
||||
} else if value.Valid {
|
||||
_m.PositionNo = value.String
|
||||
}
|
||||
case stocktakeitem.FieldBookQty:
|
||||
if value, ok := values[i].(*sql.NullInt64); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field book_qty", values[i])
|
||||
@@ -182,6 +206,15 @@ func (_m *StocktakeItem) String() string {
|
||||
builder.WriteString("zone_code=")
|
||||
builder.WriteString(_m.ZoneCode)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("shelf_no=")
|
||||
builder.WriteString(_m.ShelfNo)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("layer_no=")
|
||||
builder.WriteString(_m.LayerNo)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("position_no=")
|
||||
builder.WriteString(_m.PositionNo)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("book_qty=")
|
||||
builder.WriteString(fmt.Sprintf("%v", _m.BookQty))
|
||||
builder.WriteString(", ")
|
||||
|
||||
Reference in New Issue
Block a user