package controllers
|
|
import (
|
"github.com/gin-gonic/gin"
|
"gorm.io/gorm"
|
"silkserver/constvar"
|
"silkserver/controllers/request"
|
"silkserver/extend/code"
|
"silkserver/extend/util"
|
"silkserver/models"
|
"silkserver/pkg/structx"
|
)
|
|
type YieldRegisterController struct {
|
}
|
|
// SaveYieldRegister
|
//
|
// @Tags 生产管理/产量登记表
|
// @Summary 保存产量登记表
|
// @Produce application/json
|
// @Param object body request.YieldRegisterInfo true "参数"
|
// @Success 200 {object} util.Response "成功"
|
// @Router /api-jl/v1/fineness/saveYieldRegister [post]
|
func (slf YieldRegisterController) SaveYieldRegister(c *gin.Context) {
|
var params request.YieldRegisterInfo
|
var yield models.YieldRegister
|
err := c.BindJSON(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
|
return
|
}
|
err = structx.AssignTo(params, &yield)
|
if err != nil {
|
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 {
|
err = models.NewYieldRegisterItemSearch().SetOrm(db).SetYieldRegisterId(yield.ID).Delete()
|
if err != nil {
|
return err
|
}
|
err = models.NewYieldRegisterCircleSearch().SetOrm(db).SetYieldRegisterId(yield.ID).Delete()
|
if err != nil {
|
return err
|
}
|
err = models.NewYieldRegisterSearch().SetOrm(db).Save(&yield)
|
return err
|
})
|
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "保存失败")
|
return
|
}
|
} else {
|
//保存
|
err = models.NewYieldRegisterSearch().Create(&yield)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "保存失败")
|
return
|
}
|
}
|
util.ResponseFormat(c, code.Success, "保存成功")
|
}
|
|
// GetYieldRegisterList
|
//
|
// @Tags 生产管理/产量登记表
|
// @Summary 获取产量登记表
|
// @Produce application/json
|
// @Param object body request.GetYieldRegisterList true "参数"
|
// @Success 200 {object} util.ResponseList{data=[]models.YieldRegister} "成功"
|
// @Router /api-jl/v1/fineness/getYieldRegisterList [post]
|
func (slf YieldRegisterController) GetYieldRegisterList(c *gin.Context) {
|
var params request.GetYieldRegisterList
|
err := c.BindJSON(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
|
return
|
}
|
list, total, err := models.NewYieldRegisterSearch().SetPage(params.Page, params.PageSize).Find()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "查询失败")
|
return
|
}
|
all, err := models.NewDictSearch().SetDictTypes([]constvar.DictType{constvar.DictTypeMarket, constvar.DictTypeWorkshop}).FindAll()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "查询失败")
|
return
|
}
|
for _, register := range list {
|
for _, dict := range all {
|
if register.MarketId == dict.ID {
|
register.MarketName = dict.Name
|
}
|
if register.WorkshopNumber == dict.Number {
|
register.WorkshopName = dict.Name
|
}
|
}
|
}
|
util.ResponseFormatList(c, code.Success, list, total)
|
}
|
|
// GetYieldRegisterInfo
|
//
|
// @Tags 生产管理/产量登记表
|
// @Summary 获取产量登记表详情
|
// @Produce application/json
|
// @Param object body request.GetYieldRegisterList true "参数"
|
// @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
|
err := c.BindJSON(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
|
return
|
}
|
register, err := models.NewYieldRegisterSearch().SetPreload(true).SetNumber(params.Number).First()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "查询失败")
|
return
|
}
|
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
|
//
|
// @Tags 生产管理/产量登记表
|
// @Summary 删除产量登记表记录
|
// @Produce application/json
|
// @Param number path string true "number"
|
// @Success 200 {object} util.Response "成功"
|
// @Router /api-jl/v1/fineness/deleteYieldRegister/{number} [delete]
|
func (slf YieldRegisterController) DeleteYieldRegister(c *gin.Context) {
|
number := c.Param("number")
|
if number == "" {
|
util.ResponseFormat(c, code.RequestParamError, "无效的编码")
|
return
|
}
|
err := models.NewYieldRegisterSearch().SetNumber(number).Delete()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "删除失败")
|
return
|
}
|
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(¶ms)
|
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)
|
}
|