feat: 完成客户第12条需求+多系统改造

1. 新增预警表添加工单号字段,支持按工单号检索预警
2. 添加工单过滤在制品/绩效报表/预警中心查询
3. 补全WMS台账字段口径与权限配置
4. 修复备料单与数量不符处理流程
5. 新增配送进度/库位联动/自动出库功能
6. 修复AGV配送状态更新逻辑
7. 优化退料与库存管理细节
This commit is contained in:
SunYF
2026-09-19 17:04:58 +08:00
parent 62e45b7379
commit 05b0b8a909
89 changed files with 7912 additions and 429 deletions
+372
View File
@@ -239,6 +239,139 @@ func (_u *MaterialRequestUpdate) AddSentQty(v float64) *MaterialRequestUpdate {
return _u
}
// SetReceivedQty sets the "receivedQty" field.
func (_u *MaterialRequestUpdate) SetReceivedQty(v float64) *MaterialRequestUpdate {
_u.mutation.ResetReceivedQty()
_u.mutation.SetReceivedQty(v)
return _u
}
// SetNillableReceivedQty sets the "receivedQty" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableReceivedQty(v *float64) *MaterialRequestUpdate {
if v != nil {
_u.SetReceivedQty(*v)
}
return _u
}
// AddReceivedQty adds value to the "receivedQty" field.
func (_u *MaterialRequestUpdate) AddReceivedQty(v float64) *MaterialRequestUpdate {
_u.mutation.AddReceivedQty(v)
return _u
}
// SetReceivedAt sets the "receivedAt" field.
func (_u *MaterialRequestUpdate) SetReceivedAt(v int64) *MaterialRequestUpdate {
_u.mutation.ResetReceivedAt()
_u.mutation.SetReceivedAt(v)
return _u
}
// SetNillableReceivedAt sets the "receivedAt" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableReceivedAt(v *int64) *MaterialRequestUpdate {
if v != nil {
_u.SetReceivedAt(*v)
}
return _u
}
// AddReceivedAt adds value to the "receivedAt" field.
func (_u *MaterialRequestUpdate) AddReceivedAt(v int64) *MaterialRequestUpdate {
_u.mutation.AddReceivedAt(v)
return _u
}
// SetReceiveBy sets the "receiveBy" field.
func (_u *MaterialRequestUpdate) SetReceiveBy(v string) *MaterialRequestUpdate {
_u.mutation.SetReceiveBy(v)
return _u
}
// SetNillableReceiveBy sets the "receiveBy" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableReceiveBy(v *string) *MaterialRequestUpdate {
if v != nil {
_u.SetReceiveBy(*v)
}
return _u
}
// SetSource sets the "source" field.
func (_u *MaterialRequestUpdate) SetSource(v string) *MaterialRequestUpdate {
_u.mutation.SetSource(v)
return _u
}
// SetNillableSource sets the "source" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableSource(v *string) *MaterialRequestUpdate {
if v != nil {
_u.SetSource(*v)
}
return _u
}
// SetOverQty sets the "overQty" field.
func (_u *MaterialRequestUpdate) SetOverQty(v float64) *MaterialRequestUpdate {
_u.mutation.ResetOverQty()
_u.mutation.SetOverQty(v)
return _u
}
// SetNillableOverQty sets the "overQty" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableOverQty(v *float64) *MaterialRequestUpdate {
if v != nil {
_u.SetOverQty(*v)
}
return _u
}
// AddOverQty adds value to the "overQty" field.
func (_u *MaterialRequestUpdate) AddOverQty(v float64) *MaterialRequestUpdate {
_u.mutation.AddOverQty(v)
return _u
}
// SetOverReason sets the "overReason" field.
func (_u *MaterialRequestUpdate) SetOverReason(v string) *MaterialRequestUpdate {
_u.mutation.SetOverReason(v)
return _u
}
// SetNillableOverReason sets the "overReason" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableOverReason(v *string) *MaterialRequestUpdate {
if v != nil {
_u.SetOverReason(*v)
}
return _u
}
// SetRefReportNo sets the "refReportNo" field.
func (_u *MaterialRequestUpdate) SetRefReportNo(v string) *MaterialRequestUpdate {
_u.mutation.SetRefReportNo(v)
return _u
}
// SetNillableRefReportNo sets the "refReportNo" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableRefReportNo(v *string) *MaterialRequestUpdate {
if v != nil {
_u.SetRefReportNo(*v)
}
return _u
}
// SetNeedAgv sets the "needAgv" field.
func (_u *MaterialRequestUpdate) SetNeedAgv(v bool) *MaterialRequestUpdate {
_u.mutation.SetNeedAgv(v)
return _u
}
// SetNillableNeedAgv sets the "needAgv" field if the given value is not nil.
func (_u *MaterialRequestUpdate) SetNillableNeedAgv(v *bool) *MaterialRequestUpdate {
if v != nil {
_u.SetNeedAgv(*v)
}
return _u
}
// SetBatchNo sets the "batchNo" field.
func (_u *MaterialRequestUpdate) SetBatchNo(v string) *MaterialRequestUpdate {
_u.mutation.SetBatchNo(v)
@@ -367,6 +500,26 @@ func (_u *MaterialRequestUpdate) check() error {
return &ValidationError{Name: "targetDock", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.targetDock": %w`, err)}
}
}
if v, ok := _u.mutation.ReceiveBy(); ok {
if err := materialrequest.ReceiveByValidator(v); err != nil {
return &ValidationError{Name: "receiveBy", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.receiveBy": %w`, err)}
}
}
if v, ok := _u.mutation.Source(); ok {
if err := materialrequest.SourceValidator(v); err != nil {
return &ValidationError{Name: "source", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.source": %w`, err)}
}
}
if v, ok := _u.mutation.OverReason(); ok {
if err := materialrequest.OverReasonValidator(v); err != nil {
return &ValidationError{Name: "overReason", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.overReason": %w`, err)}
}
}
if v, ok := _u.mutation.RefReportNo(); ok {
if err := materialrequest.RefReportNoValidator(v); err != nil {
return &ValidationError{Name: "refReportNo", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.refReportNo": %w`, err)}
}
}
if v, ok := _u.mutation.BatchNo(); ok {
if err := materialrequest.BatchNoValidator(v); err != nil {
return &ValidationError{Name: "batchNo", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.batchNo": %w`, err)}
@@ -449,6 +602,39 @@ func (_u *MaterialRequestUpdate) sqlSave(ctx context.Context) (_node int, err er
if value, ok := _u.mutation.AddedSentQty(); ok {
_spec.AddField(materialrequest.FieldSentQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.ReceivedQty(); ok {
_spec.SetField(materialrequest.FieldReceivedQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.AddedReceivedQty(); ok {
_spec.AddField(materialrequest.FieldReceivedQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.ReceivedAt(); ok {
_spec.SetField(materialrequest.FieldReceivedAt, field.TypeInt64, value)
}
if value, ok := _u.mutation.AddedReceivedAt(); ok {
_spec.AddField(materialrequest.FieldReceivedAt, field.TypeInt64, value)
}
if value, ok := _u.mutation.ReceiveBy(); ok {
_spec.SetField(materialrequest.FieldReceiveBy, field.TypeString, value)
}
if value, ok := _u.mutation.Source(); ok {
_spec.SetField(materialrequest.FieldSource, field.TypeString, value)
}
if value, ok := _u.mutation.OverQty(); ok {
_spec.SetField(materialrequest.FieldOverQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.AddedOverQty(); ok {
_spec.AddField(materialrequest.FieldOverQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.OverReason(); ok {
_spec.SetField(materialrequest.FieldOverReason, field.TypeString, value)
}
if value, ok := _u.mutation.RefReportNo(); ok {
_spec.SetField(materialrequest.FieldRefReportNo, field.TypeString, value)
}
if value, ok := _u.mutation.NeedAgv(); ok {
_spec.SetField(materialrequest.FieldNeedAgv, field.TypeBool, value)
}
if value, ok := _u.mutation.BatchNo(); ok {
_spec.SetField(materialrequest.FieldBatchNo, field.TypeString, value)
}
@@ -693,6 +879,139 @@ func (_u *MaterialRequestUpdateOne) AddSentQty(v float64) *MaterialRequestUpdate
return _u
}
// SetReceivedQty sets the "receivedQty" field.
func (_u *MaterialRequestUpdateOne) SetReceivedQty(v float64) *MaterialRequestUpdateOne {
_u.mutation.ResetReceivedQty()
_u.mutation.SetReceivedQty(v)
return _u
}
// SetNillableReceivedQty sets the "receivedQty" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableReceivedQty(v *float64) *MaterialRequestUpdateOne {
if v != nil {
_u.SetReceivedQty(*v)
}
return _u
}
// AddReceivedQty adds value to the "receivedQty" field.
func (_u *MaterialRequestUpdateOne) AddReceivedQty(v float64) *MaterialRequestUpdateOne {
_u.mutation.AddReceivedQty(v)
return _u
}
// SetReceivedAt sets the "receivedAt" field.
func (_u *MaterialRequestUpdateOne) SetReceivedAt(v int64) *MaterialRequestUpdateOne {
_u.mutation.ResetReceivedAt()
_u.mutation.SetReceivedAt(v)
return _u
}
// SetNillableReceivedAt sets the "receivedAt" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableReceivedAt(v *int64) *MaterialRequestUpdateOne {
if v != nil {
_u.SetReceivedAt(*v)
}
return _u
}
// AddReceivedAt adds value to the "receivedAt" field.
func (_u *MaterialRequestUpdateOne) AddReceivedAt(v int64) *MaterialRequestUpdateOne {
_u.mutation.AddReceivedAt(v)
return _u
}
// SetReceiveBy sets the "receiveBy" field.
func (_u *MaterialRequestUpdateOne) SetReceiveBy(v string) *MaterialRequestUpdateOne {
_u.mutation.SetReceiveBy(v)
return _u
}
// SetNillableReceiveBy sets the "receiveBy" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableReceiveBy(v *string) *MaterialRequestUpdateOne {
if v != nil {
_u.SetReceiveBy(*v)
}
return _u
}
// SetSource sets the "source" field.
func (_u *MaterialRequestUpdateOne) SetSource(v string) *MaterialRequestUpdateOne {
_u.mutation.SetSource(v)
return _u
}
// SetNillableSource sets the "source" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableSource(v *string) *MaterialRequestUpdateOne {
if v != nil {
_u.SetSource(*v)
}
return _u
}
// SetOverQty sets the "overQty" field.
func (_u *MaterialRequestUpdateOne) SetOverQty(v float64) *MaterialRequestUpdateOne {
_u.mutation.ResetOverQty()
_u.mutation.SetOverQty(v)
return _u
}
// SetNillableOverQty sets the "overQty" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableOverQty(v *float64) *MaterialRequestUpdateOne {
if v != nil {
_u.SetOverQty(*v)
}
return _u
}
// AddOverQty adds value to the "overQty" field.
func (_u *MaterialRequestUpdateOne) AddOverQty(v float64) *MaterialRequestUpdateOne {
_u.mutation.AddOverQty(v)
return _u
}
// SetOverReason sets the "overReason" field.
func (_u *MaterialRequestUpdateOne) SetOverReason(v string) *MaterialRequestUpdateOne {
_u.mutation.SetOverReason(v)
return _u
}
// SetNillableOverReason sets the "overReason" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableOverReason(v *string) *MaterialRequestUpdateOne {
if v != nil {
_u.SetOverReason(*v)
}
return _u
}
// SetRefReportNo sets the "refReportNo" field.
func (_u *MaterialRequestUpdateOne) SetRefReportNo(v string) *MaterialRequestUpdateOne {
_u.mutation.SetRefReportNo(v)
return _u
}
// SetNillableRefReportNo sets the "refReportNo" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableRefReportNo(v *string) *MaterialRequestUpdateOne {
if v != nil {
_u.SetRefReportNo(*v)
}
return _u
}
// SetNeedAgv sets the "needAgv" field.
func (_u *MaterialRequestUpdateOne) SetNeedAgv(v bool) *MaterialRequestUpdateOne {
_u.mutation.SetNeedAgv(v)
return _u
}
// SetNillableNeedAgv sets the "needAgv" field if the given value is not nil.
func (_u *MaterialRequestUpdateOne) SetNillableNeedAgv(v *bool) *MaterialRequestUpdateOne {
if v != nil {
_u.SetNeedAgv(*v)
}
return _u
}
// SetBatchNo sets the "batchNo" field.
func (_u *MaterialRequestUpdateOne) SetBatchNo(v string) *MaterialRequestUpdateOne {
_u.mutation.SetBatchNo(v)
@@ -834,6 +1153,26 @@ func (_u *MaterialRequestUpdateOne) check() error {
return &ValidationError{Name: "targetDock", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.targetDock": %w`, err)}
}
}
if v, ok := _u.mutation.ReceiveBy(); ok {
if err := materialrequest.ReceiveByValidator(v); err != nil {
return &ValidationError{Name: "receiveBy", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.receiveBy": %w`, err)}
}
}
if v, ok := _u.mutation.Source(); ok {
if err := materialrequest.SourceValidator(v); err != nil {
return &ValidationError{Name: "source", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.source": %w`, err)}
}
}
if v, ok := _u.mutation.OverReason(); ok {
if err := materialrequest.OverReasonValidator(v); err != nil {
return &ValidationError{Name: "overReason", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.overReason": %w`, err)}
}
}
if v, ok := _u.mutation.RefReportNo(); ok {
if err := materialrequest.RefReportNoValidator(v); err != nil {
return &ValidationError{Name: "refReportNo", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.refReportNo": %w`, err)}
}
}
if v, ok := _u.mutation.BatchNo(); ok {
if err := materialrequest.BatchNoValidator(v); err != nil {
return &ValidationError{Name: "batchNo", err: fmt.Errorf(`ent: validator failed for field "MaterialRequest.batchNo": %w`, err)}
@@ -933,6 +1272,39 @@ func (_u *MaterialRequestUpdateOne) sqlSave(ctx context.Context) (_node *Materia
if value, ok := _u.mutation.AddedSentQty(); ok {
_spec.AddField(materialrequest.FieldSentQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.ReceivedQty(); ok {
_spec.SetField(materialrequest.FieldReceivedQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.AddedReceivedQty(); ok {
_spec.AddField(materialrequest.FieldReceivedQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.ReceivedAt(); ok {
_spec.SetField(materialrequest.FieldReceivedAt, field.TypeInt64, value)
}
if value, ok := _u.mutation.AddedReceivedAt(); ok {
_spec.AddField(materialrequest.FieldReceivedAt, field.TypeInt64, value)
}
if value, ok := _u.mutation.ReceiveBy(); ok {
_spec.SetField(materialrequest.FieldReceiveBy, field.TypeString, value)
}
if value, ok := _u.mutation.Source(); ok {
_spec.SetField(materialrequest.FieldSource, field.TypeString, value)
}
if value, ok := _u.mutation.OverQty(); ok {
_spec.SetField(materialrequest.FieldOverQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.AddedOverQty(); ok {
_spec.AddField(materialrequest.FieldOverQty, field.TypeFloat64, value)
}
if value, ok := _u.mutation.OverReason(); ok {
_spec.SetField(materialrequest.FieldOverReason, field.TypeString, value)
}
if value, ok := _u.mutation.RefReportNo(); ok {
_spec.SetField(materialrequest.FieldRefReportNo, field.TypeString, value)
}
if value, ok := _u.mutation.NeedAgv(); ok {
_spec.SetField(materialrequest.FieldNeedAgv, field.TypeBool, value)
}
if value, ok := _u.mutation.BatchNo(); ok {
_spec.SetField(materialrequest.FieldBatchNo, field.TypeString, value)
}