| | |
| | | import ( |
| | | "github.com/gin-gonic/gin" |
| | | "gorm.io/gorm" |
| | | "silkserver/constvar" |
| | | "silkserver/controllers/request" |
| | | "silkserver/controllers/response" |
| | | "silkserver/extend/code" |
| | |
| | | |
| | | // SaveWorkshopManage |
| | | // |
| | | // @Tags 系统设置/车间管理 |
| | | // @Summary 保存车间管理 |
| | | // @Produce application/json |
| | | // @Param object body models.WorkshopManage true "参数" |
| | | // @Param Authorization header string true "token" |
| | | // @Success 200 {object} util.Response "成功" |
| | | // @Router /api-jl/v1/system/saveWorkshopManage [post] |
| | | // @Tags 系统设置/车间管理 |
| | | // @Summary 保存车间管理 |
| | | // @Produce application/json |
| | | // @Param Authorization header string true "token" |
| | | // @Param object body request.AddWorkshopManage true "参数" |
| | | // @Success 200 {object} util.Response "成功" |
| | | // @Router /api-jl/v1/system/saveWorkshopManage [post] |
| | | func (slf WorkshopManageController) SaveWorkshopManage(c *gin.Context) { |
| | | var workshop models.WorkshopManage |
| | | err := c.BindJSON(&workshop) |
| | | var param *request.AddWorkshopManage |
| | | err := c.BindJSON(¶m) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") |
| | | return |
| | | } |
| | | if workshop.ID > 0 { |
| | | err = models.NewWorkshopManageSearch().Save(&workshop) |
| | | } else { |
| | | err = models.NewWorkshopManageSearch().Create(&workshop) |
| | | if param.StartCarNumber > param.EndCarNumber { |
| | | util.ResponseFormat(c, code.RequestParamError, "结束车号不能小于开始车号") |
| | | return |
| | | } |
| | | |
| | | editIds := make([]uint, len(param.Details)) |
| | | for _, detail := range param.Details { |
| | | if detail.StartCarNumber > detail.EndCarNumber { |
| | | util.ResponseFormat(c, code.RequestParamError, "分组结束车号不能小于分组开始车号") |
| | | return |
| | | } |
| | | if detail.EndCarNumber > param.EndCarNumber { |
| | | util.ResponseFormat(c, code.RequestParamError, "分组结束车号不能大于结束车号") |
| | | return |
| | | } |
| | | if detail.ID > 0 { |
| | | editIds = append(editIds, detail.ID) |
| | | } |
| | | } |
| | | |
| | | info := models.WorkshopManage{ |
| | | WorkshopNumber: param.WorkshopNumber, |
| | | WorkshopName: param.WorkshopName, |
| | | Type: constvar.Workshop, |
| | | GroupNumber: param.GroupNumber, |
| | | StartCarNumber: param.StartCarNumber, |
| | | EndCarNumber: param.EndCarNumber, |
| | | CarFlag: param.CarFlag, |
| | | Notes: param.Notes, |
| | | } |
| | | |
| | | err = models.WithTransaction(func(tx *gorm.DB) error { |
| | | if param.ID > 0 { |
| | | info.ID = param.ID |
| | | err = models.NewWorkshopManageSearch().Save(&info) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | oldDetailsList, err := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumber(param.WorkshopNumber).SetGroupNumber(param.GroupNumber).FindNotTotal() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | |
| | | for _, oldDetails := range oldDetailsList { |
| | | delFlag := true |
| | | for _, editId := range editIds { |
| | | if oldDetails.ID == editId { |
| | | delFlag = false |
| | | break |
| | | } |
| | | } |
| | | if delFlag { |
| | | err = models.NewWorkshopManageSearch().SetId(int(oldDetails.ID)).Delete() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | err = models.NewWorkshopManageSearch().Create(&info) |
| | | } |
| | | if err != nil { |
| | | return err |
| | | } |
| | | |
| | | for _, detail := range param.Details { |
| | | detail.Type = constvar.Group |
| | | detail.WorkshopNumber = param.WorkshopNumber |
| | | detail.WorkshopName = param.WorkshopName |
| | | detail.ParentID = param.WorkshopNumber |
| | | //detail.GroupNumber = param.Workshop.GroupNumber |
| | | |
| | | if detail.ID > 0 { |
| | | err = models.NewWorkshopManageSearch().Save(&detail) |
| | | } else { |
| | | err = models.NewWorkshopManageSearch().Create(&detail) |
| | | } |
| | | } |
| | | return nil |
| | | }) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.SaveFail, "保存失败") |
| | | return |
| | | } |
| | | |
| | | util.ResponseFormat(c, code.Success, "保存成功") |
| | | } |
| | | |
| | | // GetWorkshopManageList |
| | | // |
| | | // @Tags 系统设置/车间管理 |
| | | // @Summary 获取车间管理列表 |
| | | // @Produce application/json |
| | | // @Param Authorization header string true "token" |
| | | // @Param object query request.GetPriceStandard true "参数" |
| | | // @Success 200 {object} util.ResponseList{data=[]models.WorkshopManage} "成功" |
| | | // @Router /api-jl/v1/system/getWorkshopManageList [post] |
| | | // @Tags 系统设置/车间管理 |
| | | // @Summary 获取车间管理列表 |
| | | // @Produce application/json |
| | | // @Param Authorization header string true "token" |
| | | // @Param object query request.GetPriceStandard true "参数" |
| | | // @Success 200 {object} util.ResponseList{data=[]response.WorkshopManage} "成功" |
| | | // @Router /api-jl/v1/system/getWorkshopManageList [post] |
| | | func (slf WorkshopManageController) GetWorkshopManageList(c *gin.Context) { |
| | | var param request.GetWorkshopManage |
| | | err := c.BindJSON(¶m) |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") |
| | | return |
| | | } |
| | | list, total, err := models.NewWorkshopManageSearch().SetWorkshopName(param.WorkshopName).SetGroupNumber(param.GroupNumber).SetPage(param.Page, param.PageSize).Find() |
| | | workshopManageSearch := models.NewWorkshopManageSearch() |
| | | if param.Page > 0 && param.PageSize > 0 { |
| | | workshopManageSearch.SetPage(param.Page, param.PageSize) |
| | | } |
| | | workshopManageSearch.SetType(constvar.Workshop).SetWorkshopName(param.WorkshopName).SetGroupNumber(param.GroupNumber) |
| | | list, total, err := workshopManageSearch.SetOrder("workshop_number,group_number,start_car_number").Find() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.SelectError, "查询失败") |
| | | return |
| | | } |
| | | util.ResponseFormatList(c, code.Success, list, total) |
| | | workshopNumberArr := make([]string, len(list)) |
| | | for _, workshopManage := range list { |
| | | workshopNumberArr = append(workshopNumberArr, workshopManage.WorkshopNumber) |
| | | } |
| | | |
| | | details, _ := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumberArr(workshopNumberArr). |
| | | SetOrder("workshop_number,group_number,start_car_number").FindNotTotal() |
| | | |
| | | var result []*response.WorkshopManage |
| | | for _, info := range list { |
| | | var infoTemp response.WorkshopManage |
| | | infoTemp.ID = info.ID |
| | | infoTemp.CreatedAt = info.CreatedAt |
| | | infoTemp.UpdatedAt = info.UpdatedAt |
| | | infoTemp.WorkshopNumber = info.WorkshopNumber |
| | | infoTemp.WorkshopName = info.WorkshopName |
| | | infoTemp.Type = info.Type |
| | | infoTemp.ParentID = info.ParentID |
| | | infoTemp.GroupNumber = info.GroupNumber |
| | | infoTemp.StartCarNumber = info.StartCarNumber |
| | | infoTemp.EndCarNumber = info.EndCarNumber |
| | | infoTemp.CarFlag = info.CarFlag |
| | | infoTemp.Notes = info.Notes |
| | | var detailList []models.WorkshopManage |
| | | for _, detail := range details { |
| | | if info.WorkshopNumber == detail.WorkshopNumber && info.GroupNumber == detail.GroupNumber { |
| | | detailList = append(detailList, *detail) |
| | | } |
| | | } |
| | | infoTemp.Details = detailList |
| | | result = append(result, &infoTemp) |
| | | } |
| | | util.ResponseFormatList(c, code.Success, result, total) |
| | | } |
| | | |
| | | // DeleteWorkshopManage |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "数据转换失败") |
| | | return |
| | | } |
| | | err = models.NewWorkshopManageSearch().SetId(atoi).Delete() |
| | | |
| | | err = models.WithTransaction(func(tx *gorm.DB) error { |
| | | first, err := models.NewWorkshopManageSearch().SetId(atoi).First() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | if first.Type == constvar.Group { |
| | | err = models.NewWorkshopManageSearch().SetId(atoi).Delete() |
| | | } else if first.Type == constvar.Workshop { |
| | | workshopManages, err := models.NewWorkshopManageSearch().SetWorkshopNumber(first.WorkshopNumber).SetGroupNumber(first.GroupNumber).FindNotTotal() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | for _, detail := range workshopManages { |
| | | err = models.NewWorkshopManageSearch().SetId(int(detail.ID)).Delete() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | } |
| | | } |
| | | return nil |
| | | }) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "删除失败") |
| | | return |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") |
| | | return |
| | | } |
| | | all, err := models.NewWorkshopManageSearch().SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).FindAll() |
| | | all, err := models.NewWorkshopManageSearch(). |
| | | SetType(constvar.Group).SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber). |
| | | SetOrder("workshop_number,group_number,start_car_number").FindNotTotal() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | return |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "无效的编码") |
| | | return |
| | | } |
| | | all, err := models.NewWorkshopManageSearch().SetWorkshopNumber(number).FindAll() |
| | | all, err := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumber(number).FindNotTotal() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | return |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") |
| | | return |
| | | } |
| | | all, err := models.NewWorkshopManageSearch().SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).FindAll() |
| | | workshopManageList, err := models.NewWorkshopManageSearch(). |
| | | SetType(constvar.Group).SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber). |
| | | FindNotTotal() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | util.ResponseFormat(c, code.RequestParamError, "车间分组查询失败") |
| | | return |
| | | } |
| | | fineness, err := models.NewFinenessRegisterSearch().SetWorkshopName(params.WorkshopName).SetWorkshopGroup(params.GroupNumber). |
| | | SetMarket(params.MarketName).First() |
| | | finenessRegisterList, err := models.NewFinenessRegisterSearch(). |
| | | SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetWorkshopGroup(params.GroupNumber).SetMarket(params.MarketName). |
| | | First() |
| | | if err != nil { |
| | | if err == gorm.ErrRecordNotFound { |
| | | util.ResponseFormat(c, code.RequestParamError, "当前庄口,车间,组别下,没有纤度登记信息") |
| | | util.ResponseFormat(c, code.RequestParamError, "当前庄口、车间、组别下,没有纤度登记信息") |
| | | return |
| | | } |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | util.ResponseFormat(c, code.RequestParamError, "纤度登记查询失败") |
| | | return |
| | | } |
| | | first, err := models.NewFinenessCheckSearch().SetID(fineness.FinenessCheckID).First() |
| | | first, err := models.NewFinenessCheckSearch().SetID(finenessRegisterList.FinenessCheckID).First() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | util.ResponseFormat(c, code.RequestParamError, "纤度检验查询失败") |
| | | return |
| | | } |
| | | var data response.CarAndLevel |
| | | data.Level = first.FinenessGrade |
| | | |
| | | carNum := make([][]int, 0) |
| | | for _, manage := range all { |
| | | for _, workshop := range workshopManageList { |
| | | car := make([]int, 0) |
| | | i := manage.StartCarNumber |
| | | for ; i <= manage.EndCarNumber; i++ { |
| | | i := workshop.StartCarNumber |
| | | for ; i <= workshop.EndCarNumber; i++ { |
| | | car = append(car, i) |
| | | } |
| | | if len(car) > 0 { |