jiangshuai
2023-09-21 eae7648dfc2085a849401f9e49de184002f1cece
1.出入库一部分代码
5个文件已修改
121 ■■■■ 已修改文件
controllers/operation.go 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/operation.go 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/operation_details.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
request/operation.go 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation.go
@@ -5,7 +5,6 @@
    "fmt"
    "github.com/gin-gonic/gin"
    "github.com/shopspring/decimal"
    "github.com/spf13/cast"
    "gorm.io/gorm"
    "strconv"
    "wms/constvar"
@@ -170,15 +169,9 @@
// @Summary   修改入库/出库信息
// @Produce   application/json
// @Param     object  body request.UpdateOperation true  "入库信息"
// @Param     id  path int true  "入库信息id"
// @Success   200 {object} util.Response "成功"
// @Router    /api-wms/v1/operation/operation/{id} [put]
// @Router    /api-wms/v1/operation/update [post]
func (slf OperationController) Update(c *gin.Context) {
    id := cast.ToUint(c.Param("id"))
    if id == 0 {
        util.ResponseFormat(c, code.RequestParamError, "空的记录id")
        return
    }
    var reqParams request.UpdateOperation
    var params models.Operation
    if err := c.BindJSON(&reqParams); err != nil {
@@ -201,15 +194,14 @@
        util.ResponseFormat(c, code.RequestParamError, err.Error())
        return
    }
    fmt.Printf("%+v\n", *reqParams.Details[0])
    fmt.Printf("%+v\n", *reqParams.Details[1])
    fmt.Println("===============================================")
    fmt.Printf("%+v\n", *params.Details[0])
    fmt.Printf("%+v\n", *params.Details[1])
    if err := models.WithTransaction(func(tx *gorm.DB) error {
        if err := models.NewOperationDetailsSearch().SetOrm(tx).SetOperationId(params.Id).Delete(); err != nil {
            return err
        }
        operationSearch := models.NewOperationSearch().SetOrm(tx)
        if err := operationSearch.Orm.Model(&params).Association("Details").Replace(params.Details); err != nil {
            return err
        }
        if err := models.NewOperationSearch().SetOrm(tx).SetID(params.Id).Save(&params); err != nil {
            return err
        }
models/operation.go
@@ -11,21 +11,22 @@
    // Operation 操作表
    Operation struct {
        WmsModel
        Id              int                      `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
        Number          string                   `json:"number" gorm:"type:varchar(255)"`                                 //单号
        SourceNumber    string                   `json:"sourceNumber" gorm:"type:varchar(255)"`                           //源单号
        OperationTypeId int                      `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"`         //作业类型id
        Status          constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"`                  //状态
        FromLocationID  int                      `json:"fromLocationId"   gorm:"type:int;not null;comment:源位置id"`         //源位置id
        FromLocation    Location                 `json:"fromLocation"     gorm:"foreignKey:FromLocationID;references:Id"` //源位置
        ToLocationID    int                      `json:"toLocationId"    gorm:"type:int;not null;comment:目标位置id"`         //目标位置id
        ToLocation      Location                 `json:"toLocation"      gorm:"foreignKey:ToLocationID;references:Id"`    //目标位置
        OperationDate   string                   `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"`
        ContacterID     int                      `json:"contacterID" gorm:"type:int;comment:联系人ID"`
        ContacterName   string                   `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"`
        CompanyID       int                      `json:"companyID" gorm:"type:int;comment:公司ID-客户"`
        CompanyName     string                   `json:"companyName" gorm:"type:varchar(127);comment:公司名称-客户"`
        Comment         string                   `json:"comment" gorm:"type:text;comment:备注"`
        Id                int                      `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
        Number            string                   `json:"number" gorm:"type:varchar(255)"`                                 //单号
        SourceNumber      string                   `json:"sourceNumber" gorm:"type:varchar(255)"`                           //源单号
        OperationTypeId   int                      `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"`         //作业类型id
        OperationTypeName string                   `json:"operationTypeName" gorm:"type:varchar(127);comment:作业类型名称"`       //作业类型名称
        Status            constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"`                  //状态
        FromLocationID    int                      `json:"fromLocationId"   gorm:"type:int;not null;comment:源位置id"`         //源位置id
        FromLocation      Location                 `json:"fromLocation"     gorm:"foreignKey:FromLocationID;references:Id"` //源位置
        ToLocationID      int                      `json:"toLocationId"    gorm:"type:int;not null;comment:目标位置id"`         //目标位置id
        ToLocation        Location                 `json:"toLocation"      gorm:"foreignKey:ToLocationID;references:Id"`    //目标位置
        OperationDate     string                   `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"`
        ContacterID       int                      `json:"contacterID" gorm:"type:int;comment:联系人ID"`
        ContacterName     string                   `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"`
        CompanyID         int                      `json:"companyID" gorm:"type:int;comment:公司ID-客户"`
        CompanyName       string                   `json:"companyName" gorm:"type:varchar(127);comment:公司名称-客户"`
        Comment           string                   `json:"comment" gorm:"type:text;comment:备注"`
        Details []*OperationDetails `json:"details" gorm:"foreignKey:OperationID;references:Id"`
@@ -93,8 +94,8 @@
func (slf *OperationSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&Operation{})
    if slf.ID != 0 {
        db = db.Where("id = ?", slf.ID)
    if slf.Id != 0 {
        db = db.Where("id = ?", slf.Id)
    }
    if slf.Order != "" {
        db = db.Order(slf.Order)
models/operation_details.go
@@ -76,8 +76,8 @@
func (slf *OperationDetailsSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&OperationDetails{})
    if slf.ID != 0 {
        db = db.Where("id = ?", slf.ID)
    if slf.Id != 0 {
        db = db.Where("id = ?", slf.Id)
    }
    if slf.Order != "" {
request/operation.go
@@ -6,20 +6,21 @@
)
type AddOperation struct {
    ID              int                      `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
    Number          string                   `json:"number" gorm:"column:number;type:varchar(255)"`           //单号
    SourceNumber    string                   `json:"sourceNumber" gorm:"type:varchar(255)"`                   //源单号
    OperationTypeId int                      `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"` //作业类型id
    Status          constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"`          //状态
    FromLocationId  int                      `json:"fromLocationId"   gorm:"type:int;not null;comment:源位置id"` //源位置id
    ToLocationId    int                      `json:"toLocationId"    gorm:"type:int;not null;comment:目标位置id"` //目标位置id
    OperationDate   string                   `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"`      //安排日期
    Details         []*OperationDetails      `json:"details"`
    ContacterID     int                      `json:"contacterID" gorm:"type:int;comment:联系人ID"`           //联系人ID-非必填
    ContacterName   string                   `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"` //联系人姓名-非必填
    CompanyID       int                      `json:"companyID" gorm:"type:int;comment:公司ID"`              //公司ID-客户
    CompanyName     string                   `json:"companyName" gorm:"type:varchar(127);comment:公司名称"`   //公司名称-客户名称
    Comment         string                   `json:"comment" gorm:"type:text;comment:备注"`                 //备注
    ID                int                      `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
    Number            string                   `json:"number" gorm:"column:number;type:varchar(255)"`             //单号
    SourceNumber      string                   `json:"sourceNumber" gorm:"type:varchar(255)"`                     //源单号
    OperationTypeId   int                      `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"`   //作业类型id
    OperationTypeName string                   `json:"operationTypeName" gorm:"type:varchar(127);comment:作业类型名称"` //作业类型名称
    Status            constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"`            //状态
    FromLocationId    int                      `json:"fromLocationId"   gorm:"type:int;not null;comment:源位置id"`   //源位置id
    ToLocationId      int                      `json:"toLocationId"    gorm:"type:int;not null;comment:目标位置id"`   //目标位置id
    OperationDate     string                   `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"`        //安排日期
    Details           []*OperationDetails      `json:"details"`
    ContacterID       int                      `json:"contacterID" gorm:"type:int;comment:联系人ID"`           //联系人ID-非必填
    ContacterName     string                   `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"` //联系人姓名-非必填
    CompanyID         int                      `json:"companyID" gorm:"type:int;comment:公司ID"`              //公司ID-客户
    CompanyName       string                   `json:"companyName" gorm:"type:varchar(127);comment:公司名称"`   //公司名称-客户名称
    Comment           string                   `json:"comment" gorm:"type:text;comment:备注"`                 //备注
    //Weight          decimal.Decimal          `json:"weight" gorm:"type:decimal(20,2);comment:重量(kg)"`           //重量(kg)-非必填
    //TransferWeight  decimal.Decimal          `json:"transferWeight" gorm:"type:decimal(20,2);comment:物流重量(kg)"` //物流重量(kg)-非必填
@@ -32,7 +33,7 @@
    OperationId int             `json:"OperationId" gorm:"type:int;not null;comment:操作记录id"`        //操作id
    ProductId   string          `json:"productId" gorm:"type:varchar(191);not null;comment:产品id"`   //产品id
    ProductName string          `json:"productName" gorm:"type:varchar(255);not null;comment:产品名称"` //产品名称
    Quantity    decimal.Decimal `json:"quantity" gorm:"type:decimal(20,2);not null;comment:数量"`     //数量
    Amount      decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:数量"`       //数量
    Unit        string          `json:"unit" gorm:"type:varchar(31);comment:单位"`
}
@@ -42,20 +43,21 @@
}
type UpdateOperation struct {
    ID              int                      `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
    Number          string                   `json:"number" gorm:"column:number;type:varchar(255)"`           //单号
    SourceNumber    string                   `json:"sourceNumber" gorm:"type:varchar(255)"`                   //源单号
    OperationTypeId int                      `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"` //作业类型id
    Status          constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"`          //状态
    FromLocationId  int                      `json:"fromLocationId"   gorm:"type:int;not null;comment:源位置id"` //源位置id
    ToLocationId    int                      `json:"toLocationId"    gorm:"type:int;not null;comment:目标位置id"` //目标位置id
    OperationDate   string                   `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"`      //安排日期
    Details         []*OperationDetails      `json:"details"`
    ContacterID     int                      `json:"contacterID" gorm:"type:int;comment:联系人ID"`           //联系人ID-非必填
    ContacterName   string                   `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"` //联系人姓名-非必填
    CompanyID       int                      `json:"companyID" gorm:"type:int;comment:公司ID"`              //公司ID-客户
    CompanyName     string                   `json:"companyName" gorm:"type:varchar(127);comment:公司名称"`   //公司名称-客户名称
    Comment         string                   `json:"comment" gorm:"type:text;comment:备注"`                 //备注
    ID                int                      `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
    Number            string                   `json:"number" gorm:"column:number;type:varchar(255)"`             //单号
    SourceNumber      string                   `json:"sourceNumber" gorm:"type:varchar(255)"`                     //源单号
    OperationTypeId   int                      `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"`   //作业类型id
    OperationTypeName string                   `json:"operationTypeName" gorm:"type:varchar(127);comment:作业类型名称"` //作业类型名称
    Status            constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"`            //状态
    FromLocationId    int                      `json:"fromLocationId"   gorm:"type:int;not null;comment:源位置id"`   //源位置id
    ToLocationId      int                      `json:"toLocationId"    gorm:"type:int;not null;comment:目标位置id"`   //目标位置id
    OperationDate     string                   `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"`        //安排日期
    Details           []*OperationDetails      `json:"details"`
    ContacterID       int                      `json:"contacterID" gorm:"type:int;comment:联系人ID"`           //联系人ID-非必填
    ContacterName     string                   `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"` //联系人姓名-非必填
    CompanyID         int                      `json:"companyID" gorm:"type:int;comment:公司ID"`              //公司ID-客户
    CompanyName       string                   `json:"companyName" gorm:"type:varchar(127);comment:公司名称"`   //公司名称-客户名称
    Comment           string                   `json:"comment" gorm:"type:text;comment:备注"`                 //备注
    //CarrierID      int             `json:"carrierID" gorm:"type:int;comment:承运商ID"`                   //承运商ID-非必填
    //CarrierName    string          `json:"carrierName" gorm:"type:varchar(63);comment:承运商名称"`         //承运商名称-非必填
router/router.go
@@ -79,9 +79,9 @@
    {
        operationAPI.GET("operation", operationController.List)
        operationAPI.POST("operation", operationController.Add)
        operationAPI.PUT("operation/:id", operationController.Update)
        operationAPI.POST("update", operationController.Update)
        operationAPI.DELETE("operation/:id", operationController.Delete)
        operationAPI.PUT("Finish/:id", operationController.Finish)
        operationAPI.PUT("finish/:id", operationController.Finish)
    }
    //产品