feat: 完成客户第12条需求+多系统改造
1. 新增预警表添加工单号字段,支持按工单号检索预警 2. 添加工单过滤在制品/绩效报表/预警中心查询 3. 补全WMS台账字段口径与权限配置 4. 修复备料单与数量不符处理流程 5. 新增配送进度/库位联动/自动出库功能 6. 修复AGV配送状态更新逻辑 7. 优化退料与库存管理细节
This commit is contained in:
@@ -20,6 +20,10 @@ type OutboundOrder struct {
|
||||
OutboundNo string `json:"outboundNo,omitempty"`
|
||||
// 出库类型
|
||||
OutboundType string `json:"outboundType,omitempty"`
|
||||
// 出库单状态 已出库/已送达
|
||||
Status string `json:"status,omitempty"`
|
||||
// 是否需要AGV配送到接驳台
|
||||
NeedAgv bool `json:"needAgv,omitempty"`
|
||||
// 出库类别 return/sample/scrap/deliver/other
|
||||
OutboundCategory string `json:"outboundCategory,omitempty"`
|
||||
// 归属类型 workorder/project/other
|
||||
@@ -38,8 +42,14 @@ type OutboundOrder struct {
|
||||
ManageMode int `json:"manageMode,omitempty"`
|
||||
// 批次号(结构件)
|
||||
BatchNo string `json:"batchNo,omitempty"`
|
||||
// 出库区域
|
||||
// 出库区域(大区)
|
||||
ZoneCode string `json:"zoneCode,omitempty"`
|
||||
// 货架号(与入库同口径)
|
||||
ShelfNo string `json:"shelfNo,omitempty"`
|
||||
// 第几层(与入库同口径)
|
||||
LayerNo string `json:"layerNo,omitempty"`
|
||||
// 位置号(与入库同口径)
|
||||
PositionNo string `json:"positionNo,omitempty"`
|
||||
// 本次出库总数量
|
||||
Quantity int `json:"quantity,omitempty"`
|
||||
// 操作人
|
||||
@@ -66,9 +76,11 @@ func (*OutboundOrder) scanValues(columns []string) ([]any, error) {
|
||||
values := make([]any, len(columns))
|
||||
for i := range columns {
|
||||
switch columns[i] {
|
||||
case outboundorder.FieldNeedAgv:
|
||||
values[i] = new(sql.NullBool)
|
||||
case outboundorder.FieldID, outboundorder.FieldManageMode, outboundorder.FieldQuantity, outboundorder.FieldCreatedAt:
|
||||
values[i] = new(sql.NullInt64)
|
||||
case outboundorder.FieldOutboundNo, outboundorder.FieldOutboundType, outboundorder.FieldOutboundCategory, outboundorder.FieldOwnershipType, outboundorder.FieldOwnershipNo, outboundorder.FieldTargetStation, outboundorder.FieldOrderNo, outboundorder.FieldMaterialCode, outboundorder.FieldMaterialName, outboundorder.FieldBatchNo, outboundorder.FieldZoneCode, outboundorder.FieldOperator, outboundorder.FieldReviewer, outboundorder.FieldTargetDock, outboundorder.FieldRemark, outboundorder.FieldBoxNo, outboundorder.FieldBoxSnList, outboundorder.FieldContractNo:
|
||||
case outboundorder.FieldOutboundNo, outboundorder.FieldOutboundType, outboundorder.FieldStatus, outboundorder.FieldOutboundCategory, outboundorder.FieldOwnershipType, outboundorder.FieldOwnershipNo, outboundorder.FieldTargetStation, outboundorder.FieldOrderNo, outboundorder.FieldMaterialCode, outboundorder.FieldMaterialName, outboundorder.FieldBatchNo, outboundorder.FieldZoneCode, outboundorder.FieldShelfNo, outboundorder.FieldLayerNo, outboundorder.FieldPositionNo, outboundorder.FieldOperator, outboundorder.FieldReviewer, outboundorder.FieldTargetDock, outboundorder.FieldRemark, outboundorder.FieldBoxNo, outboundorder.FieldBoxSnList, outboundorder.FieldContractNo:
|
||||
values[i] = new(sql.NullString)
|
||||
default:
|
||||
values[i] = new(sql.UnknownType)
|
||||
@@ -103,6 +115,18 @@ func (_m *OutboundOrder) assignValues(columns []string, values []any) error {
|
||||
} else if value.Valid {
|
||||
_m.OutboundType = value.String
|
||||
}
|
||||
case outboundorder.FieldStatus:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field status", values[i])
|
||||
} else if value.Valid {
|
||||
_m.Status = value.String
|
||||
}
|
||||
case outboundorder.FieldNeedAgv:
|
||||
if value, ok := values[i].(*sql.NullBool); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field need_agv", values[i])
|
||||
} else if value.Valid {
|
||||
_m.NeedAgv = value.Bool
|
||||
}
|
||||
case outboundorder.FieldOutboundCategory:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field outbound_category", values[i])
|
||||
@@ -163,6 +187,24 @@ func (_m *OutboundOrder) assignValues(columns []string, values []any) error {
|
||||
} else if value.Valid {
|
||||
_m.ZoneCode = value.String
|
||||
}
|
||||
case outboundorder.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 outboundorder.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 outboundorder.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 outboundorder.FieldQuantity:
|
||||
if value, ok := values[i].(*sql.NullInt64); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field quantity", values[i])
|
||||
@@ -259,6 +301,12 @@ func (_m *OutboundOrder) String() string {
|
||||
builder.WriteString("outbound_type=")
|
||||
builder.WriteString(_m.OutboundType)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("status=")
|
||||
builder.WriteString(_m.Status)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("need_agv=")
|
||||
builder.WriteString(fmt.Sprintf("%v", _m.NeedAgv))
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("outbound_category=")
|
||||
builder.WriteString(_m.OutboundCategory)
|
||||
builder.WriteString(", ")
|
||||
@@ -289,6 +337,15 @@ func (_m *OutboundOrder) 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("quantity=")
|
||||
builder.WriteString(fmt.Sprintf("%v", _m.Quantity))
|
||||
builder.WriteString(", ")
|
||||
|
||||
Reference in New Issue
Block a user