yinbentan
2024-08-30 cc7c2094568ea8f9d1697da5ed0a2c759ca81abd
controllers/yield_register_controller.go
@@ -35,6 +35,20 @@
      util.ResponseFormat(c, code.RequestParamError, "数据转换失败")
      return
   }
   circles := make([]*models.YieldRegisterCircle, 0)
   for _, circle := range yield.Circles {
      for _, circleInfo := range params.Circles {
         if circle.CarNumber == circleInfo.CarNumber && circle.Circle == circleInfo.Circle {
            for _, number := range circleInfo.PieceNumbers {
               data := *circle
               data.PieceNumber = number.PieceNumber
               data.Value = number.Value
               circles = append(circles, &data)
            }
         }
      }
   }
   yield.Circles = circles
   if yield.ID > 0 {
      //更新
      err = models.WithTransaction(func(db *gorm.DB) error {
@@ -56,6 +70,11 @@
      }
   } else {
      //保存
      count, _ := models.NewYieldRegisterSearch().SetNumber(yield.Number).Count()
      if count > 0 {
         util.ResponseFormat(c, code.RequestParamError, "编码已存在")
         return
      }
      err = models.NewYieldRegisterSearch().Create(&yield)
      if err != nil {
         util.ResponseFormat(c, code.RequestParamError, "保存失败")
@@ -94,7 +113,9 @@
      for _, dict := range all {
         if register.MarketId == dict.ID {
            register.MarketName = dict.Name
            break
         }
         if register.WorkshopNumber == dict.Number {
            register.WorkshopName = dict.Name
         }
      }
   }
@@ -107,7 +128,7 @@
//   @Summary   获取产量登记表详情
//   @Produce   application/json
//   @Param      object   body      request.GetYieldRegisterList   true   "参数"
//   @Success   200      {object}   util.Response{data=models.YieldRegister}      "成功"
//   @Success   200      {object}   util.Response{data=request.YieldRegisterInfo}      "成功"
//   @Router      /api-jl/v1/fineness/getYieldRegisterInfo [post]
func (slf YieldRegisterController) GetYieldRegisterInfo(c *gin.Context) {
   var params request.GetYieldRegisterList
@@ -121,7 +142,34 @@
      util.ResponseFormat(c, code.RequestParamError, "查询失败")
      return
   }
   util.ResponseFormat(c, code.Success, register)
   var data request.YieldRegisterInfo
   err = structx.AssignTo(register, &data)
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "数据转换失败")
      return
   }
   circleInfos := make([]request.YieldRegisterCircleInfo, 0)
   flagMap := make(map[int]bool)
   for _, circle := range data.Circles {
      //防止重复
      num := circle.CarNumber*10000 + circle.Circle*100
      if flagMap[num] {
         continue
      }
      ci := circle
      for _, registerCircle := range register.Circles {
         if circle.CarNumber == registerCircle.CarNumber && circle.Circle == registerCircle.Circle {
            var pi request.PieceInfo
            pi.PieceNumber = registerCircle.PieceNumber
            pi.Value = registerCircle.Value
            ci.PieceNumbers = append(ci.PieceNumbers, pi)
         }
      }
      flagMap[num] = true
      circleInfos = append(circleInfos, ci)
   }
   data.Circles = circleInfos
   util.ResponseFormat(c, code.Success, data)
}
// DeleteYieldRegister
@@ -131,7 +179,7 @@
//   @Produce   application/json
//   @Param      number   path      string         true   "number"
//   @Success   200   {object}   util.Response   "成功"
//   @Router      /api-jl/v1/system/deleteYieldRegister/{number} [delete]
//   @Router      /api-jl/v1/fineness/deleteYieldRegister/{number} [delete]
func (slf YieldRegisterController) DeleteYieldRegister(c *gin.Context) {
   number := c.Param("number")
   if number == "" {
@@ -145,3 +193,27 @@
   }
   util.ResponseFormat(c, code.Success, "删除成功")
}
// ChangeYieldRegister
//
//   @Tags      生产管理/产量登记表
//   @Summary   切换产量登记表
//   @Produce   application/json
//   @Param      object   body      request.ChangeYieldRegister   true   "参数"
//   @Success   200      {object}   util.Response{data=models.YieldRegister}      "成功"
//   @Router      /api-jl/v1/fineness/changeYieldRegister [post]
func (slf YieldRegisterController) ChangeYieldRegister(c *gin.Context) {
   var params request.ChangeYieldRegister
   err := c.BindJSON(&params)
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
      return
   }
   first, err := models.NewYieldRegisterSearch().SetGroupNumber(params.GroupNumber).SetCreateTime(params.CreateTime).
      SetMarketId(params.MarketId).SetWorkshopNumber(params.WorkshopNumber).SetSpec(params.Spec).SetPreload(true).First()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查询失败")
      return
   }
   util.ResponseFormat(c, code.Success, first)
}