12345678910111213141516171819202122232425262728293031323334353637383940 |
- package service
- import (
- "context"
- modernPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/xdmy"
- "gitee.com/xuyiping_admin/pkg/xerr"
- "gorm.io/gorm"
- "kpt.xdmy/apiserver/model"
- "strconv"
- )
- // CreateSpecialtyPurchase 创建特殊申购信息
- func CreateSpecialtyPurchase(ctx context.Context, req *modernPb.SparePartsRequisitionsRequest) error {
- return s.d.DB.Transaction(func(tx *gorm.DB) error {
- newBigPartPurchase := model.NewBigPartPurchase(
- int64(req.PastureId), int64(req.DepartmentId), int64(req.EmployeId),
- int64(req.ProviderId), req.PurchaseType, req.OrderNumber, req.CreateTime,
- )
- if err := tx.Model(new(model.BigPartPurchase)).Create(newBigPartPurchase).Error; err != nil {
- return xerr.WithStack(err)
- }
- partPurchaseList := make([]*model.PartPurchase, 0)
- for _, v := range req.SpotList {
- amount, _ := strconv.Atoi(v.Amount)
- partPurchaseList = append(partPurchaseList, model.NewPartPurchase(
- newBigPartPurchase.Id, int64(req.PastureId), int64(v.PartId), int64(v.BrandId), int64(amount),
- v.PartCode, v.PartName, v.Specification, v.Unit, v.Purpose, v.Price, v.ContractId, float64(v.StorageAmount)))
- }
- if len(partPurchaseList) > 0 {
- if err := tx.Model(new(model.PartPurchase)).Create(partPurchaseList).Error; err != nil {
- return xerr.WithStack(err)
- }
- }
- return nil
- })
- }
|