zhangqian
2024-06-12 e5df488268e29b272932e6cc1d2b1e7034590ba0
controllers/product_controller.go
@@ -16,6 +16,7 @@
   "wms/models"
   "wms/pkg/logx"
   "wms/pkg/mysqlx"
   "wms/pkg/structx"
   "wms/request"
)
@@ -479,6 +480,7 @@
      OperationDate:     time.Now().Format("2006-01-02 15:04:05"),
      Details:           []*models.OperationDetails{detail},
      BaseOperationType: constvar.BaseOperationTypeDisuse,
      OperationTypeName: "库存报废",
   }
   if err := models.NewOperationSearch().Create(&operation); err != nil {
      logx.Errorf("Operation create err: %v", err)
@@ -508,7 +510,10 @@
   db := models.NewOperationSearch().Orm.
      Table("wms_operation").
      Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation_details.from_location_id,wms_operation_details.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,material.name as product_name,material.unit,wms_operation_details.amount,wms_operation.base_operation_type").
      Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation_details.from_location_id,"+
         "wms_operation_details.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,"+
         "wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,"+
         "material.name as product_name,material.unit,wms_operation_details.amount,wms_operation.base_operation_type").
      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").
      Where("wms_operation.base_operation_type=?", constvar.BaseOperationTypeDisuse)
@@ -761,3 +766,67 @@
   m["userName"] = userInfo.Username
   util.ResponseFormat(c, code.Success, m)
}
// GetUnitInfo
//
//   @Tags      产品
//   @Summary   获取单位信息
//   @Produce   application/json
//   @Success   200   {object}   util.ResponseList{data=[]models.UnitDict}   "成功"
//   @Router      /api-wms/v1/product/getUnitInfo [get]
func (slf ProductController) GetUnitInfo(c *gin.Context) {
   dicts, total, err := models.NewUnitDictSearch().Find()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查询出错")
      return
   }
   util.ResponseFormatList(c, code.Success, dicts, int(total))
}
// SaveUnitDict
//
//   @Tags      数据字典
//   @Summary   更新计量单位字典
//   @Produce   application/json
//   @Param      object   body      request.SaveUnitDict   true   "参数"
//   @Success   200      {object}   util.Response         "成功"
//   @Router      /api-wms/v1/product/saveUnitDict [post]
func (slf ProductController) SaveUnitDict(c *gin.Context) {
   var reqParams request.SaveUnitDict
   var params []*models.UnitDict
   if err := c.BindJSON(&reqParams); err != nil {
      util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
      return
   }
   if err := structx.AssignTo(reqParams.Data, &params); err != nil {
      util.ResponseFormat(c, code.RequestParamError, "数据转换错误")
      return
   }
   for i, v := range params {
      if len(v.Name) == 0 {
         util.ResponseFormat(c, code.RequestParamError, "名称为空")
         return
      }
      v.Sort = i + 1
   }
   err := models.WithTransaction(func(tx *gorm.DB) error {
      err := models.NewUnitDictSearch().SetOrm(tx).Delete()
      if err != nil {
         return err
      }
      err = models.NewUnitDictSearch().SetOrm(tx).CreateBatch(params)
      if err != nil {
         return err
      }
      return nil
   })
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "删除失败")
      return
   }
   util.ResponseFormat(c, code.Success, "添加成功")
}