constvar/const.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/request/system_set.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/request/workshop_manage.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/response/workshop_manage.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/workshop_manage_controller.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
main.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/fineness.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/fineness_item.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/workshop_manage.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/workshop.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
constvar/const.go
@@ -22,7 +22,14 @@ const ( LeftHalfCar CarFlag = iota + 1 //左半车 RightHalfCar //右半车 AllCar //全车结束 //AllCar //全车结束 ) type WorkshopType int const ( Workshop WorkshopType = iota + 1 // 车间信息 Group // 分组信息 ) type CheckItem int controllers/request/system_set.go
@@ -49,17 +49,3 @@ RankName string `json:"rankName"` //等级名称 RankValue decimal.Decimal `json:"rankValue"` //等级值 } // ---------------------------------------车间--------------------------------- type GetWorkshopManage struct { PageInfo KeyWord string `json:"keyWord"` WorkshopName string `json:"workshopName"` //车间名称 GroupNumber int `json:"groupNumber"` //组别 } type GetWorkshopManageCar struct { WorkshopName string `json:"workshopName"` //车间名称 GroupNumber int `json:"groupNumber"` //组别 MarketName string `json:"marketName"` //庄口名 } controllers/request/workshop_manage.go
New file @@ -0,0 +1,25 @@ package request import ( "silkserver/models" ) type AddWorkshopManage struct { models.WorkshopManage Details []models.WorkshopManage `json:"details"` // 车间信息 } type GetWorkshopManage struct { PageInfo KeyWord string `json:"keyWord"` WorkshopNumber string `json:"workshopNumber"` // 车间编号 WorkshopName string `json:"workshopName"` //车间名称 GroupNumber int `json:"groupNumber"` //组别 } type GetWorkshopManageCar struct { WorkshopNumber string `json:"workshopNumber"` // 车间编号 WorkshopName string `json:"workshopName"` //车间名称 GroupNumber int `json:"groupNumber"` //组别 MarketName string `json:"marketName"` //庄口名 } controllers/response/workshop_manage.go
New file @@ -0,0 +1,8 @@ package response import "silkserver/models" type WorkshopManage struct { models.WorkshopManage Details []models.WorkshopManage `json:"details"` // 车间信息 } controllers/workshop_manage_controller.go
@@ -3,6 +3,7 @@ import ( "github.com/gin-gonic/gin" "gorm.io/gorm" "silkserver/constvar" "silkserver/controllers/request" "silkserver/controllers/response" "silkserver/extend/code" @@ -16,41 +17,117 @@ // 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) @@ -58,12 +135,49 @@ 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 @@ -85,7 +199,28 @@ 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 @@ -109,7 +244,9 @@ 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 @@ -139,7 +276,7 @@ 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 @@ -167,34 +304,37 @@ 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 { main.go
@@ -37,6 +37,8 @@ ReadTimeout: 5 * time.Second, WriteTimeout: 5 * time.Second, } logx.Infof("server start success! \n\n\t- Local: \thttp://localhost:%v/\n\t- Network: \thttp://%v:%v/\n", conf.WebConf.Port, conf.WebConf.Host, conf.WebConf.Port) //定时任务初始化 task.Init() models/fineness.go
@@ -11,13 +11,14 @@ // FinenessRegister 纤度登记 FinenessRegister struct { gorm.Model Number string `gorm:"type:varchar(255);not null;comment:编号" json:"number"` //编号 FinenessCheckID uint `gorm:"not null;comment:纤度检验表ID" json:"finenessCheckID"` //纤度检验表ID FinishDate string `gorm:"type:varchar(255);not null;comment:落丝时间" json:"finishDate"` //落丝时间 WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:车间编号"` WorkshopName string `json:"workshopName" gorm:"type:varchar(255);comment:车间名称"` Number string `gorm:"type:varchar(255);not null;comment:编号" json:"number"` //编号 FinenessCheckID uint `gorm:"not null;comment:纤度检验表ID" json:"finenessCheckID"` //纤度检验表ID FinishDate string `gorm:"type:varchar(255);not null;comment:落丝时间" json:"finishDate"` //落丝时间 WorkshopNumber string `gorm:"type:varchar(255);comment:车间编号" json:"workshopNumber" ` // 车间编号 WorkshopName string `gorm:"type:varchar(255);comment:车间名称" json:"workshopName" ` // 车间名称 WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:车组" json:"workshopGroup"` //车组 Market string `gorm:"type:varchar(255);not null;comment:庄口" json:"market"` //庄口 MarketNumber string `gorm:"size:255;comment:庄口" json:"marketNumber"` //庄口编号 Market string `gorm:"type:varchar(255);not null;comment:庄口" json:"market"` //庄口名称 Spec string `gorm:"type:varchar(255);not null;comment:规格" json:"spec"` //规格 Circle uint8 `gorm:"not null;default:0;comment:回数" json:"circle"` //回数 TotalCircle uint8 `gorm:"not null;default:0;comment:总回数" json:"totalCircle"` //总回数 @@ -80,8 +81,13 @@ return slf } func (slf *FinenessRegisterSearch) SetWorkshopName(workshop string) *FinenessRegisterSearch { slf.WorkshopName = workshop func (slf *FinenessRegisterSearch) SetWorkshopNumber(workshopNumber string) *FinenessRegisterSearch { slf.WorkshopNumber = workshopNumber return slf } func (slf *FinenessRegisterSearch) SetWorkshopName(workshopName string) *FinenessRegisterSearch { slf.WorkshopName = workshopName return slf } @@ -118,6 +124,10 @@ db = db.Where("number like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) } if slf.WorkshopNumber != "" { db = db.Where("workshop_number = ?", slf.WorkshopNumber) } if slf.WorkshopName != "" { db = db.Where("workshop_name = ?", slf.WorkshopName) } models/fineness_item.go
@@ -11,11 +11,11 @@ // FinenessItem 纤度登记 FinenessItem struct { gorm.Model FinenessRegisterID uint `gorm:"index" json:"finenessRegisterID"` Position int `json:"position"` //车号 Fineness float32 `json:"fineness"` //纤度 Quantity int `json:"quantity"` //数量 Sum decimal.Decimal `json:"sum"` //纤度合计 FinenessRegisterID uint `gorm:"size:11;index" json:"finenessRegisterID"` Position int `gorm:"size:11;comment:车号" json:"position"` // 车号 Fineness float32 `gorm:"comment:纤度" json:"fineness"` // 纤度 Quantity int `gorm:"size:11;comment:数量" json:"quantity"` // 数量 Sum decimal.Decimal `gorm:"type:decimal(12,4);comment:纤度合计" json:"sum"` //纤度合计 } FinenessItemSearch struct { models/workshop_manage.go
@@ -11,20 +11,25 @@ type ( WorkshopManage struct { gorm.Model WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:车间编号"` WorkshopName string `json:"workshopName" gorm:"type:varchar(255);comment:车间名称"` GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:组别"` StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:开始车号"` EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:结束车号"` CarFlag constvar.CarFlag `json:"carFlag" gorm:"type:int(1);comment:半车标志"` Notes string `json:"notes" gorm:"type:varchar(255);comment:备注"` WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:车间编号"` WorkshopName string `json:"workshopName" gorm:"type:varchar(255);comment:车间名称"` Type constvar.WorkshopType `json:"type" gorm:"size:1;comment:类型(1车间、2分组)"` // 类型(1车间、2分组) ParentID string `json:"parentID" gorm:"size:11;comment:车间编号"` GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:组别"` StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:开始车号"` StartCarHalf constvar.CarFlag `json:"startCarHalf" gorm:"type:int(1);comment:开始半车标识(1左半车、2右半车)"` EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:结束车号"` EndCarHalf constvar.CarFlag `json:"endCarHalf" gorm:"type:int(1);comment:结束半车标识(1左半车、2右半车)"` CarFlag int `json:"carFlag" gorm:"type:int(1);comment:半车标志(0全车、1半车)"` Notes string `json:"notes" gorm:"type:varchar(255);comment:备注"` } WorkshopManageSearch struct { WorkshopManage PageNum int PageSize int Order string Orm *gorm.DB WorkshopNumberArr []string PageNum int PageSize int Order string Orm *gorm.DB } ) @@ -51,6 +56,16 @@ return slf } func (slf *WorkshopManageSearch) SetType(types constvar.WorkshopType) *WorkshopManageSearch { slf.Type = types return slf } func (slf *WorkshopManageSearch) SetParentID(parentID string) *WorkshopManageSearch { slf.ParentID = parentID return slf } func (slf *WorkshopManageSearch) SetWorkshopNumber(workshopNumber string) *WorkshopManageSearch { slf.WorkshopNumber = workshopNumber return slf @@ -58,6 +73,11 @@ func (slf *WorkshopManageSearch) SetWorkshopName(workshopName string) *WorkshopManageSearch { slf.WorkshopName = workshopName return slf } func (slf *WorkshopManageSearch) SetWorkshopNumberArr(workshopNumberArr []string) *WorkshopManageSearch { slf.WorkshopNumberArr = workshopNumberArr return slf } @@ -78,8 +98,20 @@ db = db.Where("id = ?", slf.ID) } if slf.Type > 0 { db = db.Where("`type` = ?", slf.Type) } if slf.ParentID != "" { db = db.Where("parent_id = ?", slf.ParentID) } if slf.WorkshopNumber != "" { db = db.Where("workshop_number = ?", slf.WorkshopNumber) } if len(slf.WorkshopNumberArr) > 0 { db = db.Where("workshop_number in (?)", slf.WorkshopNumberArr) } if slf.WorkshopName != "" { @@ -103,6 +135,19 @@ return nil } func (slf *WorkshopManageSearch) First() (*WorkshopManage, error) { var ( record = new(WorkshopManage) db = slf.build() ) if err := db.First(record).Error; err != nil { return record, err } return record, nil } func (slf *WorkshopManageSearch) Find() ([]*WorkshopManage, int64, error) { var ( records = make([]*WorkshopManage, 0) @@ -116,19 +161,33 @@ if slf.PageNum*slf.PageSize > 0 { db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) } if err := db.Order("updated_at desc").Find(&records).Error; err != nil { if slf.Order != "" { db = db.Order(slf.Order) } else { db = db.Order("updated_at desc") } if err := db.Find(&records).Error; err != nil { return records, total, fmt.Errorf("find records err: %v", err) } return records, total, nil } func (slf *WorkshopManageSearch) FindAll() ([]*WorkshopManage, error) { func (slf *WorkshopManageSearch) FindNotTotal() ([]*WorkshopManage, error) { var ( records = make([]*WorkshopManage, 0) db = slf.build() ) if slf.PageNum*slf.PageSize > 0 { db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) } if slf.Order != "" { db = db.Order(slf.Order) } else { db = db.Order("updated_at desc") } if err := db.Find(&records).Error; err != nil { return records, fmt.Errorf("find records err: %v", err) } service/workshop.go
@@ -3,7 +3,7 @@ import "silkserver/models" func GetWorkshopEndCarMap(workshopNumber string, groupNumber int) (endCarMap map[int]bool, err error) { records, err := models.NewWorkshopManageSearch().SetWorkshopNumber(workshopNumber).SetGroupNumber(groupNumber).FindAll() records, err := models.NewWorkshopManageSearch().SetWorkshopNumber(workshopNumber).SetGroupNumber(groupNumber).FindNotTotal() if err != nil { return }