zhangqian
2024-06-13 97d6acaf340b19d66244967b00dd2fdff410e034
controllers/operation.go
@@ -17,6 +17,7 @@
   "wms/constvar"
   "wms/extend/code"
   "wms/extend/util"
   "wms/middleware"
   "wms/models"
   "wms/pkg/logx"
   "wms/pkg/mysqlx"
@@ -75,7 +76,8 @@
      util.ResponseFormat(c, code.RequestParamError, err.Error())
      return
   }
   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
@@ -88,6 +90,23 @@
   if numberNum > 0 {
      util.ResponseFormat(c, code.RequestParamError, "单号已存在")
      return
   }
   var productIds []string
   for _, v := range params.Details {
      productIds = append(productIds, v.ProductId)
   }
   products, err := models.NewMaterialSearch().SetIDs(productIds).FindNotTotal()
   if err != nil {
      logx.Errorf("MonthStats get products err:%v", err)
      return
   }
   productMap := models.MaterialMap(products)
   for i, v := range params.Details {
      material := productMap[v.ProductId]
      if material != nil {
         params.Details[i].Note = material.Note
      }
   }
   if err := models.NewOperationSearch().Create(&params); err != nil {
@@ -155,7 +174,6 @@
            return errors.New("请选择源位置")
         }
      }
   }
   return nil
}
@@ -343,11 +361,16 @@
   }
   operation, err := models.NewOperationSearch().SetID(id).First()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "未找到相关出入库信息:"+err.Error())
      util.ResponseFormat(c, code.RequestParamError, "未找到相关出入库单据:"+err.Error())
      return
   }
   userInfo := middleware.GetUserInfo(c)
   if operation.CreatedBy != userInfo.Username {
      util.ResponseFormat(c, code.RequestError, "别人的出入库单据无法进行删除")
      return
   }
   if operation.Status != constvar.OperationStatus_Ready {
      util.ResponseFormat(c, code.RequestError, "该入库信息无法进行删除")
      util.ResponseFormat(c, code.RequestError, "该出入库单据无法进行删除")
      return
   }
   if err := models.WithTransaction(func(tx *gorm.DB) error {
@@ -411,9 +434,14 @@
         mapLocAmount[strconv.Itoa(v.LocationId)+v.ProductId] = v
      }
   }
   userInfo := middleware.GetUserInfo(c)
   err = models.WithTransaction(func(tx *gorm.DB) error {
      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 {
      if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{
         Status:    constvar.OperationStatus_Finish,
         CheckedBy: userInfo.Username,
         CheckedAt: time.Now(),
         AuditDate: time.Now().Format("2006-01-02 15:04:05")}); err != nil {
         return err
      }
      if err := AddMoveHistory([]*models.Operation{operation}, tx); err != nil {
@@ -532,6 +560,8 @@
               Comment:           operation.Comment,
               BaseOperationType: constvar.BaseOperationTypeInternal,
               Details:           details,
               CheckedAt:         time.Now(),
               CheckedBy:         userInfo.Username,
            }).Error; err != nil {
               return err
            }
@@ -638,6 +668,7 @@
      util.ResponseFormat(c, code.RequestError, err.Error())
      return
   }
   //修改其他系统订单状态
   if operation.BaseOperationType == constvar.BaseOperationTypeIncoming {
      if operation.Source != "" {