constvar/const.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/code.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/operation.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
middleware/utils.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/operation.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
request/operation.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/code.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
constvar/const.go
@@ -302,6 +302,7 @@ CodeStandardType_Outgoing CodeStandardType = "出库编码" CodeStandardType_Internal CodeStandardType = "调拨编码" CodeStandardType_Disuse CodeStandardType = "仓库报废编码" CodeStandardType_TakeStock CodeStandardType = "盘点编码" ) type OperationSource int @@ -326,9 +327,10 @@ type MiniDictType int const ( TransferType MiniDictType = iota + 1 // 调拨类型 StorageType // 入库类型 StorageType MiniDictType = iota + 1 // 入库类型 StockoutType // 出库类型 TransferType // 调拨类型 TakeStock // 盘点类型 ) func (t MiniDictType) Valid() bool { controllers/code.go
@@ -99,6 +99,8 @@ id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeInternal).MaxAutoIncr() case constvar.CodeStandardType_Disuse: id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeDisuse).MaxAutoIncr() case constvar.CodeStandardType_TakeStock: id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeAdjust).MaxAutoIncr() default: util.ResponseFormat(c, cd.RequestError, "编码规则不存在") return controllers/operation.go
@@ -63,19 +63,23 @@ return } if CheckDetailsRepeat(params.Details) { util.ResponseFormat(c, code.RequestParamError, "明细中不能存在重复的产品") return } if params.BaseOperationType != constvar.BaseOperationTypeAdjust { if err := slf.FormatLocation(¶ms); err != nil { util.ResponseFormat(c, code.RequestParamError, err.Error()) return } if CheckDetailsRepeat(params.Details) { util.ResponseFormat(c, code.RequestParamError, "明细中不能存在重复的产品") return } var operationType *models.OperationType var err error if params.OperationTypeId == 0 { operationType, err = models.NewOperationTypeSearch().SetWarehouseId(params.WarehouseId).SetBaseOperationType(params.BaseOperationType).First() operationType, err := models.NewOperationTypeSearch(). SetWarehouseId(params.WarehouseId).SetBaseOperationType(params.BaseOperationType). First() if err != nil || params.WarehouseId != operationType.WarehouseId { util.ResponseFormat(c, code.RequestParamError, "参数缺失") return @@ -87,13 +91,14 @@ return } } params.BaseOperationType = operationType.BaseOperationType params.WarehouseId = operationType.WarehouseId } userInfo := middleware.GetUserInfo(c) params.CreatedBy = userInfo.Username params.Status = constvar.OperationStatus_Ready //params.Number = strconv.FormatInt(time.Now().Unix(), 10) params.BaseOperationType = operationType.BaseOperationType params.WarehouseId = operationType.WarehouseId var numberNum int64 if err := mysqlx.GetDB().Model(&models.Operation{}).Where("number=?", params.Number).Count(&numberNum).Error; err != nil { @@ -104,7 +109,7 @@ util.ResponseFormat(c, code.RequestParamError, "单号已存在") return } err = models.WithTransaction(func(db *gorm.DB) error { err := models.WithTransaction(func(db *gorm.DB) error { if err := models.NewOperationSearch().Create(¶ms); err != nil { return err } @@ -148,6 +153,7 @@ return false } // FormatLocation 位置检查 func (slf OperationController) FormatLocation(params *models.Operation) error { operationType, err := models.NewOperationTypeSearch().SetID(uint(params.OperationTypeId)).First() if err != nil { @@ -215,9 +221,9 @@ return errors.New("请选择安排日期") } if params.LocationID == 0 { return errors.New("请选择源位置") } //if params.LocationID == 0 { // return errors.New("请选择源位置") //} if len(params.Details) <= 0 { return errors.New("请添加明细信息") @@ -268,7 +274,7 @@ // @Summary 入库/出库列表 // @Produce application/json // @Param object body request.OperationList true "查询参数" // @Success 200 {object} util.Response "成功" // @Success 200 {object} util.ResponseList{data=[]models.Operation} "成功" // @Router /api-wms/v1/operation/list [post] func (slf OperationController) List(c *gin.Context) { var params request.OperationList @@ -358,10 +364,13 @@ util.ResponseFormat(c, code.RequestParamError, "明细中不能存在重复的产品") return } if params.BaseOperationType != constvar.BaseOperationTypeAdjust { if err := slf.FormatLocation(¶ms); err != nil { util.ResponseFormat(c, code.RequestParamError, err.Error()) return } } if err := models.WithTransaction(func(tx *gorm.DB) error { if err := models.NewOperationDetailsSearch().SetOrm(tx).SetOperationId(params.Id).Delete(); err != nil { return err middleware/utils.go
@@ -60,6 +60,7 @@ } } // 获取登录用户信息 func GetUserInfo(c *gin.Context) *request.CustomClaims { if claims, exists := c.Get("claims"); exists { waitUse := claims.(*request.CustomClaims) models/operation.go
@@ -63,7 +63,7 @@ WarehouseId int `json:"warehouseId" gorm:"type:int;not null;comment:仓库id"` IsInternalOutput bool `json:"isInternalOutput"` //是否调拨产生的出库 InventoryDealerType int `json:"inventoryDealerType" gorm:"type:varchar(255);comment:会计名称"` InventoryDealerType int `json:"inventoryDealerType" gorm:"type:varchar(255);comment:调拨出入库分类(对应dict字典表的ID)"` InventoryDealer MiniDict `json:"inventoryDealer" gorm:"foreignKey:InventoryDealerType;"` } @@ -82,6 +82,7 @@ Fields string BeginTime time.Time EndTime time.Time InventoryDealerTypeIds []int // } ) @@ -189,6 +190,11 @@ return slf } func (slf *OperationSearch) SetInventoryDealerTypeIds(inventoryDealerTypeArr []int) *OperationSearch { slf.InventoryDealerTypeIds = inventoryDealerTypeArr return slf } func (slf *OperationSearch) build() *gorm.DB { var db = slf.Orm.Model(&Operation{}) @@ -258,6 +264,11 @@ if !slf.BeginTime.IsZero() && !slf.EndTime.IsZero() { db = db.Where("created_at between ? and ?", slf.BeginTime, slf.EndTime) } if len(slf.InventoryDealerTypeIds) > 0 { db = db.Where("inventory_dealer_type in (?)", slf.InventoryDealerTypeIds) } return db } request/operation.go
@@ -38,6 +38,7 @@ Custodian string `json:"custodian" gorm:"type:varchar(255);comment:保管员名称"` BaseOperationType constvar.BaseOperationType `json:"baseOperationType" gorm:"type:tinyint;not null;comment:基础作业类型"` //基础作业类型 5库存盘点 WarehouseId int `json:"warehouseId" gorm:"type:int;not null;comment:仓库id"` //仓库id InventoryDealerType int `json:"inventoryDealerType" gorm:"type:varchar(255);comment:调拨出入库分类(对应dict字典表的ID)"` } type OperationDetails struct { @@ -99,6 +100,8 @@ Accountant string `json:"accountant" gorm:"type:varchar(255);comment:会计名称"` CustodianId string `json:"custodianId" gorm:"type:varchar(255);comment:保管员id"` Custodian string `json:"custodian" gorm:"type:varchar(255);comment:保管员名称"` WarehouseId int `json:"warehouseId" gorm:"type:int;not null;comment:仓库id"` //仓库id InventoryDealerType int `json:"inventoryDealerType" gorm:"type:varchar(255);comment:调拨出入库分类(对应dict字典表的ID)"` } type OperationAllList struct { service/code.go
@@ -40,6 +40,8 @@ maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeInternal).MaxAutoIncr() case constvar.CodeStandardType_Disuse: maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeDisuse).MaxAutoIncr() case constvar.CodeStandardType_TakeStock: maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeAdjust).MaxAutoIncr() default: err = errors.New("编码规则不存在") return