| | |
| | | return |
| | | } |
| | | params.LocationId = locationId |
| | | if err := models.NewWarehouseSearch().Create(¶ms); err != nil { |
| | | err = models.WithTransaction(func(tx *gorm.DB) error { |
| | | err := models.NewWarehouseSearch().SetOrm(tx).Create(¶ms) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | //创建三个默认操作类型 |
| | | var types []*models.OperationType |
| | | inType := &models.OperationType{ |
| | | Name: params.Name + "-入库", |
| | | BaseOperationType: constvar.BaseOperationTypeIncoming, |
| | | WarehouseId: params.Id, |
| | | } |
| | | types = append(types, inType) |
| | | outType := &models.OperationType{ |
| | | Name: params.Name + "-出库", |
| | | BaseOperationType: constvar.BaseOperationTypeOutgoing, |
| | | WarehouseId: params.Id, |
| | | } |
| | | types = append(types, outType) |
| | | internalType := &models.OperationType{ |
| | | Name: params.Name + "-内部调拨", |
| | | BaseOperationType: constvar.BaseOperationTypeInternal, |
| | | WarehouseId: params.Id, |
| | | } |
| | | types = append(types, internalType) |
| | | err = models.NewOperationTypeSearch().SetOrm(tx).CreateBatch(types) |
| | | return err |
| | | }) |
| | | if err != nil { |
| | | _ = models.NewLocationSearch().SetID(locationId).Delete() |
| | | logx.Errorf("warehouse create err: %v", err) |
| | | util.ResponseFormat(c, code.SaveFail, "插入失败") |
| | | return |
| | |
| | | return |
| | | } |
| | | |
| | | //删除位置信息 |
| | | first, err := models.NewWarehouseSearch().SetID(id).First() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "获取仓库信息失败") |
| | | return |
| | | } |
| | | err = models.NewLocationSearch().SetID(first.LocationId).Delete() |
| | | err = models.WithTransaction(func(tx *gorm.DB) error { |
| | | //删除位置信息 |
| | | err = models.NewLocationSearch().SetOrm(tx).SetJointName(first.Code).Delete() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | //删除操作类型 |
| | | err = models.NewOperationTypeSearch().SetOrm(tx).SetWarehouseId(first.Id).Delete() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | //删除仓库 |
| | | err = models.NewWarehouseSearch().SetOrm(tx).SetID(id).Delete() |
| | | return err |
| | | }) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "删除位置信息失败") |
| | | util.ResponseFormat(c, code.RequestParamError, "删除仓库失败") |
| | | return |
| | | } |
| | | err = models.NewWarehouseSearch().SetID(id).Delete() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "删除仓库信息失败") |
| | | return |
| | | } |
| | | |
| | | util.ResponseFormat(c, code.UpdateSuccess, "删除成功") |
| | | } |
| | | |
| | |
| | | "request.UpdateLocationProductAmount": { |
| | | "type": "object", |
| | | "properties": { |
| | | "Amount": { |
| | | "description": "库存数量", |
| | | "type": "number" |
| | | }, |
| | | "adjustAmount": { |
| | | "description": "LocationProductAmountId int ` + "`" + `json:\"locationProductAmountId\"` + "`" + ` //库存盘点id", |
| | | "type": "number" |
| | | }, |
| | | "amount": { |
| | | "description": "库存数量", |
| | | "type": "number" |
| | | }, |
| | | "differenceAmount": { |
| | |
| | | "description": "数量", |
| | | "type": "number" |
| | | }, |
| | | "baseOperationType": { |
| | | "description": "基础作业类型", |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/constvar.BaseOperationType" |
| | | } |
| | | ] |
| | | }, |
| | | "contactedName": { |
| | | "description": "完成者", |
| | | "type": "string" |
| | |
| | | }, |
| | | "number": { |
| | | "description": "单号", |
| | | "type": "string" |
| | | }, |
| | | "productName": { |
| | | "description": "产品名称", |
| | | "type": "string" |
| | | }, |
| | | "status": { |
| | | "description": "状态", |
| | | "type": "string" |
| | | }, |
| | | "toLocation": { |
| | |
| | | Description: "", |
| | | InfoInstanceName: "swagger", |
| | | SwaggerTemplate: docTemplate, |
| | | LeftDelim: "{{", |
| | | RightDelim: "}}", |
| | | } |
| | | |
| | | func init() { |
| | |
| | | "request.UpdateLocationProductAmount": { |
| | | "type": "object", |
| | | "properties": { |
| | | "Amount": { |
| | | "description": "库存数量", |
| | | "type": "number" |
| | | }, |
| | | "adjustAmount": { |
| | | "description": "LocationProductAmountId int `json:\"locationProductAmountId\"` //库存盘点id", |
| | | "type": "number" |
| | | }, |
| | | "amount": { |
| | | "description": "库存数量", |
| | | "type": "number" |
| | | }, |
| | | "differenceAmount": { |
| | |
| | | "description": "数量", |
| | | "type": "number" |
| | | }, |
| | | "baseOperationType": { |
| | | "description": "基础作业类型", |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/constvar.BaseOperationType" |
| | | } |
| | | ] |
| | | }, |
| | | "contactedName": { |
| | | "description": "完成者", |
| | | "type": "string" |
| | |
| | | "description": "单号", |
| | | "type": "string" |
| | | }, |
| | | "productName": { |
| | | "description": "产品名称", |
| | | "type": "string" |
| | | }, |
| | | "status": { |
| | | "description": "状态", |
| | | "type": "string" |
| | | }, |
| | | "toLocation": { |
| | | "description": "目标位置", |
| | | "type": "string" |
| | |
| | | type: object |
| | | request.UpdateLocationProductAmount: |
| | | properties: |
| | | Amount: |
| | | description: 库存数量 |
| | | type: number |
| | | adjustAmount: |
| | | description: LocationProductAmountId int `json:"locationProductAmountId"` |
| | | //库存盘点id |
| | | type: number |
| | | amount: |
| | | description: 库存数量 |
| | | type: number |
| | | differenceAmount: |
| | | description: 计数数量 |
| | |
| | | amount: |
| | | description: 数量 |
| | | type: number |
| | | baseOperationType: |
| | | allOf: |
| | | - $ref: '#/definitions/constvar.BaseOperationType' |
| | | description: 基础作业类型 |
| | | contactedName: |
| | | description: 完成者 |
| | | type: string |
| | |
| | | number: |
| | | description: 单号 |
| | | type: string |
| | | productName: |
| | | description: 产品名称 |
| | | type: string |
| | | status: |
| | | description: 状态 |
| | | type: string |
| | | toLocation: |
| | | description: 目标位置 |
| | | type: string |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *OperationTypeSearch) SetWarehouseId(warehouseId int) *OperationTypeSearch { |
| | | slf.WarehouseId = warehouseId |
| | | return slf |
| | | } |
| | | |
| | | func (slf *OperationTypeSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&OperationType{}) |
| | | |
| | |
| | | db = db.Preload("Company").Preload("Warehouse").Preload("DefaultLocationSrc").Preload("DefaultLocationDest") |
| | | } |
| | | |
| | | if slf.WarehouseId > 0 { |
| | | db = db.Where("warehouse_id = ?", slf.WarehouseId) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |