package controllers import ( "github.com/gin-gonic/gin" "github.com/spf13/cast" "silkserver/controllers/request" "silkserver/extend/code" "silkserver/extend/util" "silkserver/middleware" "silkserver/models" ) type WorkerPositionController struct { } // CreateWorkerPositionInfo // @Tags 机台管理 // @Summary 创建机台信息 // @Produce application/json // @Param object body request.AddWorkPositionRequest true "参数" // @Param Authorization header string true "token" // @Success 200 {object} util.Response "成功" // @Router /api-jl/v1/workerPosition/createWorkerPositionInfo [post] func (slf WorkerPositionController) CreateWorkerPositionInfo(c *gin.Context) { var params request.AddWorkPositionRequest err := c.BindJSON(¶ms) if err != nil { util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") return } //查询是否重复 _, err = models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).SetOverlappingDate(params.StartDate, params.EndDate).First() if err == nil { util.ResponseFormat(c, code.RequestParamError, "时间范围和该工人以往添加记录有重复,请检查") return } record := &models.WorkerPosition{ StartDate: params.StartDate, EndDate: params.EndDate, Workshop: params.Workshop, WorkshopName: params.WorkshopName, WorkshopGroup: params.WorkshopGroup, StartWorkerPosition: params.StartWorkerPosition, EndWorkerPosition: params.EndWorkerPosition, WorkerId: params.WorkerId, } info := middleware.GetUserInfo(c) if info != nil { record.Creator = info.NickName } err = models.NewWorkerPositionSearch().Create(record) if err != nil { util.ResponseFormat(c, code.RequestParamError, "创建失败, 请重试") return } util.ResponseFormat(c, code.Success, "创建成功") } // UpdateWorkerPositionInfo // @Tags 机台管理 // @Summary 更新机台信息 // @Produce application/json // @Param object body request.UpdateWorkerPositionRequest true "参数" // @Param Authorization header string true "token" // @Success 200 {object} util.Response "成功" // @Router /api-jl/v1/workerPosition/updateWorkerPositionInfo [post] func (slf WorkerPositionController) UpdateWorkerPositionInfo(c *gin.Context) { var params request.UpdateWorkerPositionRequest err := c.BindJSON(¶ms) if err != nil { util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") return } if params.Id == 0 { util.ResponseFormat(c, code.RequestParamError, "参数缺失") return } //查询是否重复 old, err := models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).First() if err == nil { if old.ID != params.Id { util.ResponseFormat(c, code.RequestParamError, "时间范围和该工人以往添加记录有重复,请检查") return } } record := &models.WorkerPosition{ StartDate: params.StartDate, EndDate: params.EndDate, Workshop: params.Workshop, WorkshopGroup: params.WorkshopGroup, StartWorkerPosition: params.StartWorkerPosition, EndWorkerPosition: params.EndWorkerPosition, WorkerId: params.WorkerId, } info := middleware.GetUserInfo(c) if info != nil { record.Creator = info.NickName } err = models.NewWorkerPositionSearch().SetID(params.Id).Update(record) if err != nil { util.ResponseFormat(c, code.RequestParamError, "更新失败") return } util.ResponseFormat(c, code.Success, "更新成功") } // GetWorkerPositionList // // @Tags 机台管理 // @Summary 获取机台信息列表 // @Produce application/json // @Param object body request.GetWorkerPositionList true "参数" // @Param Authorization header string true "token" // @Success 200 {object} util.ResponseList{data=[]models.WorkerPosition} "成功" // @Router /api-jl/v1/workerPosition/getWorkerPositionList [post] func (slf WorkerPositionController) GetWorkerPositionList(c *gin.Context) { var params request.GetWorkerPositionList err := c.BindJSON(¶ms) if err != nil { util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") return } WorkerPositions, total, err := models.NewWorkerPositionSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetPreload().SetOrder("id desc").Find() if err != nil { util.ResponseFormat(c, code.RequestParamError, "查询失败") return } util.ResponseFormatList(c, code.Success, WorkerPositions, total) } // DeleteWorkerPositionInfo // // @Tags 机台管理 // @Summary 删除机台信息 // @Produce application/json // @Param id path string true "id" // @Param Authorization header string true "token" // @Success 200 {object} util.Response "成功" // @Router /api-jl/v1/workerPosition/deleteWorkerPositionInfo/{id} [delete] func (slf WorkerPositionController) DeleteWorkerPositionInfo(c *gin.Context) { id := c.Param("id") if id == "" { util.ResponseFormat(c, code.RequestParamError, "无效的id") return } idInt := cast.ToUint(id) if idInt == 0 { util.ResponseFormat(c, code.RequestParamError, "无效的id") return } err := models.NewWorkerPositionSearch().SetID(idInt).Delete() if err != nil { util.ResponseFormat(c, code.RequestParamError, "删除失败") return } util.ResponseFormat(c, code.Success, "删除成功") }