From b0113676f423ca930bc3dd93ac9d9ea292458dfa Mon Sep 17 00:00:00 2001 From: jiangshuai <291802688@qq.com> Date: 星期四, 23 十一月 2023 11:28:56 +0800 Subject: [PATCH] 1.修改MoveHistory字段类型 2.完成MoveHistory插入数据 3.operation增加审批时间、收货人、收货地址、联系电话字段,并修改相应接口以及打印 --- controllers/product_controller.go | 3 + controllers/operation.go | 45 ++++++++++++++++++++-- models/move_history.go | 4 +- models/operation.go | 5 ++ request/operation.go | 6 +++ 5 files changed, 55 insertions(+), 8 deletions(-) diff --git a/controllers/operation.go b/controllers/operation.go index 4e5ab53..238b057 100644 --- a/controllers/operation.go +++ b/controllers/operation.go @@ -14,6 +14,7 @@ "os" "sort" "strconv" + "strings" "time" "wms/conf" "wms/constvar" @@ -337,7 +338,10 @@ } if err := models.WithTransaction(func(tx *gorm.DB) error { - if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{Status: constvar.OperationStatus_Finish}); err != nil { + if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{Status: constvar.OperationStatus_Finish, AuditDate: time.Now().Format("2006-01-02 15:04:05")}); err != nil { + return err + } + if err := AddMoveHistory([]*models.Operation{operation}, tx); err != nil { return err } @@ -404,7 +408,6 @@ // return err //} - //TODO:鍑哄叆搴撶殑finish鍜屾姤搴熺殑finish閮借澧炲姞瀵筶ocation_product_amount琛ㄦ暟閲忕殑鏇存柊,鍥犱负姝よ〃鏈塒roductCategory瀛楁锛屾墍浠peration_details琛ㄤ腑瑕佸鍔燩roductCategoryId瀛楁 locAmount, err := models.NewLocationProductAmountSearch(). SetProductId(v.ID). SetLocationId(locationRule.LocationId). @@ -454,7 +457,6 @@ // return err //} - //TODO:鍑哄叆搴撶殑finish鍜屾姤搴熺殑finish閮借澧炲姞瀵筶ocation_product_amount琛ㄦ暟閲忕殑鏇存柊,鍥犱负姝よ〃鏈塒roductCategory瀛楁锛屾墍浠peration_details琛ㄤ腑瑕佸鍔燩roductCategoryId瀛楁 locAmount, err := models.NewLocationProductAmountSearch(). SetProductId(v.ID). SetLocationId(locationRule.LocationId). @@ -471,7 +473,6 @@ return res.Error } } else { - //TODO:鍑哄叆搴撶殑finish鍜屾姤搴熺殑finish閮借澧炲姞瀵筶ocation_product_amount琛ㄦ暟閲忕殑鏇存柊,鍥犱负姝よ〃鏈塒roductCategory瀛楁锛屾墍浠peration_details琛ㄤ腑瑕佸鍔燩roductCategoryId瀛楁 locAmount, err := models.NewLocationProductAmountSearch(). SetProductId(v.ID). SetLocationId(operation.ToLocationID). @@ -703,6 +704,34 @@ util.ResponseFormat(c, code.Success, "鎿嶄綔鎴愬姛") } +func AddMoveHistory(operationList []*models.Operation, db *gorm.DB) error { + var histories []*models.MoveHistory + for _, operation := range operationList { + for _, v := range operation.Details { + history := &models.MoveHistory{ + Number: operation.Number, + BaseOperationType: operation.BaseOperationType, + OperationTypeId: operation.OperationTypeId, + OperationTypeName: operation.OperationTypeName, + OperationId: operation.Id, + ProductName: v.Product.Name, + Amount: v.Amount, + Unit: v.Product.Unit, + Weight: operation.Weight, + FromLocationId: operation.FromLocationID, + FromLocation: operation.FromLocation.Name, + ToLocationId: operation.ToLocationID, + ToLocation: operation.ToLocation.Name, + } + histories = append(histories, history) + } + } + if err := db.Model(&models.MoveHistory{}).Create(&histories).Error; err != nil { + return err + } + return nil +} + var ( ProductInventoryServiceConn *grpc.ClientConn PurchaseServiceConn *grpc.ClientConn @@ -824,6 +853,7 @@ return } operation.Status = constvar.OperationStatus_Cancel + operation.AuditDate = time.Now().Format("2006-01-02 15:04:05") if err := models.NewOperationSearch().SetID(operation.Id).Save(operation); err != nil { util.ResponseFormat(c, code.SaveFail, err.Error()) return @@ -960,6 +990,7 @@ } func ExportOutputOperation(category constvar.FileTemplateCategory, operation *models.Operation) (string, error) { + repositoryLevels := strings.Split(operation.FromLocation.JointName, "/") template, err := models.NewFileTemplateAttachmentSearch().SetPreload(true).SetCategory(category).First() if err != nil { return "", errors.New("鑾峰彇妯$増璁板綍澶辫触:" + err.Error()) @@ -988,11 +1019,15 @@ }, }) - f.SetCellValue("Sheet1", "C2", operation.FromLocation.Name) + f.SetCellValue("Sheet1", "C2", repositoryLevels[0]) f.SetCellValue("Sheet1", "H2", operation.WaybillNumber) + f.SetCellValue("Sheet1", "K2", operation.AuditDate) f.SetCellValue("Sheet1", "H3", operation.SourceNumber) f.SetCellValue("Sheet1", "K3", operation.Number) f.SetCellValue("Sheet1", "C4", operation.CompanyName) + f.SetCellValue("Sheet1", "I4", operation.ReceiverAddr) + f.SetCellValue("Sheet1", "C5", operation.ReceiverName) + f.SetCellValue("Sheet1", "H5", operation.ReceiverPhone) rowIndex := 8 totalAmount := decimal.NewFromInt(0) diff --git a/controllers/product_controller.go b/controllers/product_controller.go index 3a40e59..43a9db0 100644 --- a/controllers/product_controller.go +++ b/controllers/product_controller.go @@ -544,7 +544,7 @@ return } if err := models.WithTransaction(func(tx *gorm.DB) error { - if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{Status: constvar.OperationStatus_Finish}); err != nil { + if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{Status: constvar.OperationStatus_Finish, AuditDate: time.Now().Format("2006-01-02 15:04:05")}); err != nil { return err } var listProdtId []string @@ -745,6 +745,7 @@ return } operation.Status = constvar.OperationStatus_Cancel + operation.AuditDate = time.Now().Format("2006-01-02 15:04:05") if err := models.NewOperationSearch().SetID(operation.Id).Save(operation); err != nil { util.ResponseFormat(c, code.SaveFail, err.Error()) return diff --git a/models/move_history.go b/models/move_history.go index f47383f..c6b4268 100644 --- a/models/move_history.go +++ b/models/move_history.go @@ -2,7 +2,7 @@ import ( "fmt" - "google.golang.org/genproto/googleapis/type/decimal" + "github.com/shopspring/decimal" "gorm.io/gorm" "wms/constvar" "wms/pkg/mysqlx" @@ -22,7 +22,7 @@ ProductName string `json:"productName" gorm:"type:varchar(255);not null;comment:浜у搧鍚嶇О"` //浜у搧鍚嶇О Amount decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:鏁伴噺"` //鏁伴噺 Unit string `json:"unit" gorm:"type:char(10);not null;comment:鍗曚綅"` //鍗曚綅 - Weight string `json:"weight" gorm:"type:decimal(20,2);not null;comment:閲嶉噺"` //閲嶉噺 + Weight decimal.Decimal `json:"weight" gorm:"type:decimal(20,2);not null;comment:閲嶉噺"` //閲嶉噺 FromLocationId int `json:"fromLocationId" gorm:"type:int;not null;comment:婧愪綅缃甶d"` //婧愪綅缃甶d FromLocation string `json:"fromLocation" gorm:"type:varchar(255);not null;comment:婧愪綅缃�"` //婧愪綅缃� ToLocationId int `json:"toLocationId" gorm:"type:int;not null;comment:鐩爣浣嶇疆id"` //鐩爣浣嶇疆id diff --git a/models/operation.go b/models/operation.go index a06bdda..1996968 100644 --- a/models/operation.go +++ b/models/operation.go @@ -36,6 +36,11 @@ Details []*OperationDetails `json:"details" gorm:"foreignKey:OperationID;references:Id"` BaseOperationType constvar.BaseOperationType `json:"baseOperationType" gorm:"type:tinyint;not null;comment:鍩虹浣滀笟绫诲瀷"` //鍩虹浣滀笟绫诲瀷 + + AuditDate string `json:"auditDate" gorm:"type:varchar(31);comment:瀹℃壒鏃堕棿"` + ReceiverName string `json:"receiverName" gorm:"type:varchar(31);comment:鏀惰揣浜哄鍚�"` + ReceiverPhone string `json:"receiverPhone" gorm:"type:varchar(31);comment:鑱旂郴鐢佃瘽"` + ReceiverAddr string `json:"receiverAddr" gorm:"type:varchar(255);comment:鏀惰揣鍦板潃"` } OperationSearch struct { diff --git a/request/operation.go b/request/operation.go index 966c299..6ab8a19 100644 --- a/request/operation.go +++ b/request/operation.go @@ -25,6 +25,9 @@ WaybillNumber string `json:"waybillNumber" gorm:"type:varchar(255);comment:杩愬崟鍙�"` //杩愬崟鍙� Weight decimal.Decimal `gorm:"type:decimal(20,2);comment:閲嶉噺" json:"weight"` //閲嶉噺 LogisticWeight decimal.Decimal `gorm:"type:decimal(20,2);comment:鐗╂祦閲嶉噺" json:"logisticWeight"` //鐗╂祦閲嶉噺 + ReceiverName string `json:"receiverName" gorm:"type:varchar(31);comment:鏀惰揣浜哄鍚�"` + ReceiverPhone string `json:"receiverPhone" gorm:"type:varchar(31);comment:鑱旂郴鐢佃瘽"` + ReceiverAddr string `json:"receiverAddr" gorm:"type:varchar(255);comment:鏀惰揣鍦板潃"` } type OperationDetails struct { @@ -64,6 +67,9 @@ WaybillNumber string `json:"waybillNumber" gorm:"type:varchar(255);comment:杩愬崟鍙�"` //杩愬崟鍙� Weight decimal.Decimal `gorm:"type:decimal(20,2);comment:閲嶉噺" json:"weight"` //閲嶉噺 LogisticWeight decimal.Decimal `gorm:"type:decimal(20,2);comment:鐗╂祦閲嶉噺" json:"logisticWeight"` //鐗╂祦閲嶉噺 + ReceiverName string `json:"receiverName" gorm:"type:varchar(31);comment:鏀惰揣浜哄鍚�"` + ReceiverPhone string `json:"receiverPhone" gorm:"type:varchar(31);comment:鑱旂郴鐢佃瘽"` + ReceiverAddr string `json:"receiverAddr" gorm:"type:varchar(255);comment:鏀惰揣鍦板潃"` } type OperationAllList struct { -- Gitblit v1.8.0