liujiandao
2023-12-27 0a2dac26ffa53737cad4c2980168eedd4c5919a3
controllers/operation.go
@@ -6,6 +6,7 @@
   "errors"
   "fmt"
   "github.com/gin-gonic/gin"
   uuid "github.com/satori/go.uuid"
   "github.com/shopspring/decimal"
   "github.com/xuri/excelize/v2"
   "gorm.io/gorm"
@@ -77,8 +78,19 @@
   }
   params.Status = constvar.OperationStatus_Ready
   params.Number = strconv.FormatInt(time.Now().Unix(), 10)
   //params.Number = strconv.FormatInt(time.Now().Unix(), 10)
   params.BaseOperationType = operationType.BaseOperationType
   var numberNum int64
   if err := mysqlx.GetDB().Model(&models.Operation{}).Where("number=?", params.Number).Count(&numberNum).Error; err != nil {
      util.ResponseFormat(c, code.RequestParamError, err.Error())
      return
   }
   if numberNum > 0 {
      util.ResponseFormat(c, code.RequestParamError, "单号已存在")
      return
   }
   if err := models.NewOperationSearch().Create(&params); err != nil {
      logx.Errorf("Operation create err: %v", err)
      util.ResponseFormat(c, code.SaveFail, "添加失败:"+err.Error())
@@ -143,6 +155,10 @@
func (slf OperationController) CheckParams(params models.Operation) error {
   if params.SourceNumber == "" {
      return errors.New("请填入源单号")
   }
   if params.Number == "" {
      return errors.New("请填入单号")
   }
   if params.OperationTypeId == 0 && int(params.BaseOperationType) == 0 {
@@ -574,7 +590,7 @@
            }
         }
         if operation.Source != "" {
            go UpdateOutStatus(operation.Source, operation.Number, 4)
            go UpdateOutStatus(operation.Source, operation.SourceNumber, 4)
         }
      }
@@ -912,7 +928,7 @@
   }
   //更新aps物料申请状态
   if operation.Source == "APS_APPLY_MATERIAL" {
      go UpdateOutStatus(operation.Source, operation.Number, 3)
      go UpdateOutStatus(operation.Source, operation.SourceNumber, 3)
   }
   util.ResponseFormat(c, code.Success, "操作成功")
}
@@ -1037,7 +1053,7 @@
      return "", err
   }
   fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), "xlsx", buf.Bytes())
   fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), uuid.NewV4().String()+".xlsx", buf.Bytes())
   if err != nil {
      logx.Errorf("file upload err: %v", err)
      return "", err
@@ -1114,7 +1130,7 @@
      return "", err
   }
   fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), "xlsx", buf.Bytes())
   fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), uuid.NewV4().String()+".xlsx", buf.Bytes())
   if err != nil {
      logx.Errorf("file upload err: %v", err)
      return "", err
@@ -1178,7 +1194,7 @@
      return
   }
   db := mysqlx.GetDB().Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.base_operation_type,material.id AS product_id,material.`name` AS product_name,wms_operation_details.amount,material.unit,wms_operation.from_location_id,from_location.`name` AS from_location,wms_operation.to_location_id,to_location.`name` AS to_location,wms_operation.operation_date as date,wms_operation.`status`").InnerJoins("inner join wms_operation_details ON wms_operation_details.operation_id = wms_operation.id").InnerJoins("INNER JOIN material ON material.id = wms_operation_details.product_id").InnerJoins("INNER JOIN wms_location AS from_location ON from_location.id = wms_operation.from_location_id").InnerJoins("INNER JOIN wms_location AS to_location ON to_location.id = wms_operation.to_location_id")
   db := mysqlx.GetDB().Table("wms_operation").Select("wms_operation.id as operation_id,wms_operation.number,wms_operation.base_operation_type,material.id AS product_id,material.`name` AS product_name,wms_operation_details.amount,material.unit,wms_operation.from_location_id,from_location.`name` AS from_location,wms_operation.to_location_id,to_location.`name` AS to_location,wms_operation.operation_date as date,wms_operation.`status`").InnerJoins("inner join wms_operation_details ON wms_operation_details.operation_id = wms_operation.id").InnerJoins("INNER JOIN material ON material.id = wms_operation_details.product_id").InnerJoins("INNER JOIN wms_location AS from_location ON from_location.id = wms_operation.from_location_id").InnerJoins("INNER JOIN wms_location AS to_location ON to_location.id = wms_operation.to_location_id")
   if params.Condition != "" {
      db = db.Where("wms_operation.number like ? or wms_operation.source_number like ? or from_location.`name` like ? or to_location.`name` like ?", "%"+params.Condition+"%", "%"+params.Condition+"%", "%"+params.Condition+"%", "%"+params.Condition+"%")
   }