| | |
| | | .idea |
| | | *.db |
| | | vendor |
| | | logs |
| | | logs |
| | | silkserver |
| | |
| | | ## WMS |
| | | ## SilkServer 缫丝系统 |
| | | |
| | | > 基于 GIN + JWT + Gorm 开发。 |
| | | |
| | |
| | | |
| | | ### 快速开始 |
| | | |
| | | |
| | | ```bash |
| | | $ cd wms |
| | | $ cd silkServer |
| | | |
| | | # 配置国内代理(可选) |
| | | $ export GOPROXY=https://goproxy.cn |
| | | |
| | | $ go build -v |
| | | |
| | | $ ./wms |
| | | $ ./silkServer |
| | | ``` |
| | | |
| | | ### 更新接口文档 |
| | | ```bash |
| | | swag init -pd |
| | | ``` |
| | |
| | | } |
| | | |
| | | id := convertx.StringToUInt(idStr) |
| | | if id == 0 { |
| | | util.ResponseFormat(c, code.RequestParamError, "空的记录id") |
| | | return |
| | | } |
| | | err := models.NewDictSearch().SetID(id).Delete() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "删除失败") |
New file |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "github.com/gin-gonic/gin" |
| | | "silkserver/controllers/request" |
| | | "silkserver/extend/code" |
| | | "silkserver/extend/util" |
| | | "silkserver/models" |
| | | "silkserver/pkg/convertx" |
| | | ) |
| | | |
| | | type FinenessController struct{} |
| | | |
| | | // List |
| | | // @Tags 纤度登记 |
| | | // @Summary 纤度登记列表 |
| | | // @Produce application/json |
| | | // @Param object query request.GetFinenessRegisterList true "查询参数" |
| | | // @Success 200 {object} util.ResponseList{data=[]models.FinenessRegister} "成功" |
| | | // @Router /api-jl/v1/fineness/register [get] |
| | | func (slf FinenessController) List(c *gin.Context) { |
| | | var params request.GetFinenessRegisterList |
| | | if err := c.ShouldBindQuery(¶ms); err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, err.Error()) |
| | | return |
| | | } |
| | | |
| | | list, total, err := models.NewFinenessRegisterSearch().Find() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | return |
| | | } |
| | | |
| | | util.ResponseFormatList(c, code.Success, list, int(total)) |
| | | } |
| | | |
| | | // Delete |
| | | // @Tags 纤度登记 |
| | | // @Summary 纤度登记删除 |
| | | // @Produce application/json |
| | | // @Param id path string true "字典信息" |
| | | // @Success 200 {object} util.Response "成功" |
| | | // @Router /api-jl/v1/fineness/register/{id} [delete] |
| | | func (slf FinenessController) Delete(c *gin.Context) { |
| | | idStr := c.Param("id") |
| | | if idStr == "0" || idStr == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "空的记录id") |
| | | return |
| | | } |
| | | |
| | | id := convertx.StringToUInt(idStr) |
| | | if id == 0 { |
| | | util.ResponseFormat(c, code.RequestParamError, "空的记录id") |
| | | return |
| | | } |
| | | |
| | | err := models.NewFinenessRegisterSearch().SetID(id).Delete() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "删除失败") |
| | | return |
| | | } |
| | | util.ResponseFormat(c, code.UpdateSuccess, "删除成功") |
| | | } |
New file |
| | |
| | | package request |
| | | |
| | | type GetFinenessRegisterList struct { |
| | | PageInfo |
| | | } |
| | |
| | | "host": "{{.Host}}", |
| | | "basePath": "{{.BasePath}}", |
| | | "paths": { |
| | | "/api-jl/v1/fineness/register": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "纤度登记" |
| | | ], |
| | | "summary": "纤度登记列表", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "页码", |
| | | "name": "page", |
| | | "in": "query" |
| | | }, |
| | | { |
| | | "type": "integer", |
| | | "description": "每页大小", |
| | | "name": "pageSize", |
| | | "in": "query" |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "成功", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/util.ResponseList" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/models.FinenessRegister" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api-jl/v1/fineness/register/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "纤度登记" |
| | | ], |
| | | "summary": "纤度登记删除", |
| | | "parameters": [ |
| | | { |
| | | "type": "string", |
| | | "description": "字典信息", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "成功", |
| | | "schema": { |
| | | "$ref": "#/definitions/util.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api-jl/v1/system/dict": { |
| | | "get": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "models.FinenessRegister": { |
| | | "type": "object", |
| | | "properties": { |
| | | "createdAt": { |
| | | "type": "string" |
| | | }, |
| | | "deletedAt": { |
| | | "$ref": "#/definitions/gorm.DeletedAt" |
| | | }, |
| | | "endCircle": { |
| | | "description": "结束回数", |
| | | "type": "integer" |
| | | }, |
| | | "finishDate": { |
| | | "description": "落丝时间", |
| | | "type": "string" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "market": { |
| | | "description": "庄口", |
| | | "type": "string" |
| | | }, |
| | | "name": { |
| | | "description": "车间", |
| | | "type": "string" |
| | | }, |
| | | "number": { |
| | | "description": "编号", |
| | | "type": "string" |
| | | }, |
| | | "spec": { |
| | | "description": "规格", |
| | | "type": "string" |
| | | }, |
| | | "startCircle": { |
| | | "description": "开始回数", |
| | | "type": "integer" |
| | | }, |
| | | "updatedAt": { |
| | | "type": "string" |
| | | }, |
| | | "workshopGroup": { |
| | | "description": "车组", |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.AddDict": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | "contact": {} |
| | | }, |
| | | "paths": { |
| | | "/api-jl/v1/fineness/register": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "纤度登记" |
| | | ], |
| | | "summary": "纤度登记列表", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "页码", |
| | | "name": "page", |
| | | "in": "query" |
| | | }, |
| | | { |
| | | "type": "integer", |
| | | "description": "每页大小", |
| | | "name": "pageSize", |
| | | "in": "query" |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "成功", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/util.ResponseList" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/models.FinenessRegister" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api-jl/v1/fineness/register/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "纤度登记" |
| | | ], |
| | | "summary": "纤度登记删除", |
| | | "parameters": [ |
| | | { |
| | | "type": "string", |
| | | "description": "字典信息", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "成功", |
| | | "schema": { |
| | | "$ref": "#/definitions/util.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api-jl/v1/system/dict": { |
| | | "get": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "models.FinenessRegister": { |
| | | "type": "object", |
| | | "properties": { |
| | | "createdAt": { |
| | | "type": "string" |
| | | }, |
| | | "deletedAt": { |
| | | "$ref": "#/definitions/gorm.DeletedAt" |
| | | }, |
| | | "endCircle": { |
| | | "description": "结束回数", |
| | | "type": "integer" |
| | | }, |
| | | "finishDate": { |
| | | "description": "落丝时间", |
| | | "type": "string" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "market": { |
| | | "description": "庄口", |
| | | "type": "string" |
| | | }, |
| | | "name": { |
| | | "description": "车间", |
| | | "type": "string" |
| | | }, |
| | | "number": { |
| | | "description": "编号", |
| | | "type": "string" |
| | | }, |
| | | "spec": { |
| | | "description": "规格", |
| | | "type": "string" |
| | | }, |
| | | "startCircle": { |
| | | "description": "开始回数", |
| | | "type": "integer" |
| | | }, |
| | | "updatedAt": { |
| | | "type": "string" |
| | | }, |
| | | "workshopGroup": { |
| | | "description": "车组", |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.AddDict": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | updatedAt: |
| | | type: string |
| | | type: object |
| | | models.FinenessRegister: |
| | | properties: |
| | | createdAt: |
| | | type: string |
| | | deletedAt: |
| | | $ref: '#/definitions/gorm.DeletedAt' |
| | | endCircle: |
| | | description: 结束回数 |
| | | type: integer |
| | | finishDate: |
| | | description: 落丝时间 |
| | | type: string |
| | | id: |
| | | type: integer |
| | | market: |
| | | description: 庄口 |
| | | type: string |
| | | name: |
| | | description: 车间 |
| | | type: string |
| | | number: |
| | | description: 编号 |
| | | type: string |
| | | spec: |
| | | description: 规格 |
| | | type: string |
| | | startCircle: |
| | | description: 开始回数 |
| | | type: integer |
| | | updatedAt: |
| | | type: string |
| | | workshopGroup: |
| | | description: 车组 |
| | | type: string |
| | | type: object |
| | | request.AddDict: |
| | | properties: |
| | | dictType: |
| | |
| | | info: |
| | | contact: {} |
| | | paths: |
| | | /api-jl/v1/fineness/register: |
| | | get: |
| | | parameters: |
| | | - description: 页码 |
| | | in: query |
| | | name: page |
| | | type: integer |
| | | - description: 每页大小 |
| | | in: query |
| | | name: pageSize |
| | | type: integer |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: 成功 |
| | | schema: |
| | | allOf: |
| | | - $ref: '#/definitions/util.ResponseList' |
| | | - properties: |
| | | data: |
| | | items: |
| | | $ref: '#/definitions/models.FinenessRegister' |
| | | type: array |
| | | type: object |
| | | summary: 纤度登记列表 |
| | | tags: |
| | | - 纤度登记 |
| | | /api-jl/v1/fineness/register/{id}: |
| | | delete: |
| | | parameters: |
| | | - description: 字典信息 |
| | | in: path |
| | | name: id |
| | | required: true |
| | | type: string |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: 成功 |
| | | schema: |
| | | $ref: '#/definitions/util.Response' |
| | | summary: 纤度登记删除 |
| | | tags: |
| | | - 纤度登记 |
| | | /api-jl/v1/system/dict: |
| | | get: |
| | | parameters: |
| | |
| | | db := mysqlx.GetDB() |
| | | err := db.AutoMigrate( |
| | | Dict{}, |
| | | FinenessRegister{}, |
| | | ) |
| | | return err |
| | | } |
New file |
| | |
| | | package models |
| | | |
| | | import ( |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "silkserver/pkg/mysqlx" |
| | | ) |
| | | |
| | | type ( |
| | | // FinenessRegister 纤度登记 |
| | | FinenessRegister struct { |
| | | gorm.Model |
| | | Number string `gorm:"type:varchar(255);not null;comment:编号" json:"number"` //编号 |
| | | FinishDate string `gorm:"type:varchar(255);not null;comment:落丝时间" json:"finishDate"` //落丝时间 |
| | | Workshop string `gorm:"type:varchar(255);not null;comment:车间" json:"name"` //车间 |
| | | WorkshopGroup string `gorm:"type:varchar(255);not null;comment:车组" json:"workshopGroup"` //车组 |
| | | Market string `gorm:"type:varchar(255);not null;comment:庄口" json:"market"` //庄口 |
| | | Spec string `gorm:"type:varchar(255);not null;comment:规格" json:"spec"` //规格 |
| | | StartCircle uint8 `gorm:"type:varchar(255);not null;comment:开始回数" json:"startCircle"` //开始回数 |
| | | EndCircle uint8 `gorm:"type:varchar(255);not null;comment:结束回数" json:"endCircle"` //结束回数 |
| | | } |
| | | |
| | | FinenessRegisterSearch struct { |
| | | FinenessRegister |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | } |
| | | ) |
| | | |
| | | func (slf *FinenessRegister) TableName() string { |
| | | return "fineness_register" |
| | | } |
| | | |
| | | func NewFinenessRegisterSearch() *FinenessRegisterSearch { |
| | | return &FinenessRegisterSearch{Orm: mysqlx.GetDB()} |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) SetOrm(tx *gorm.DB) *FinenessRegisterSearch { |
| | | slf.Orm = tx |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) SetPage(page, size int) *FinenessRegisterSearch { |
| | | slf.PageNum, slf.PageSize = page, size |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) SetOrder(order string) *FinenessRegisterSearch { |
| | | slf.Order = order |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) SetID(id uint) *FinenessRegisterSearch { |
| | | slf.ID = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) SetNumber(number string) *FinenessRegisterSearch { |
| | | slf.Number = number |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Table(slf.TableName()) |
| | | |
| | | if slf.ID != 0 { |
| | | db = db.Where("id = ?", slf.ID) |
| | | } |
| | | |
| | | if slf.Order != "" { |
| | | db = db.Order(slf.Order) |
| | | } |
| | | |
| | | if slf.Number != "" { |
| | | db = db.Where("number = ?", slf.Number) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |
| | | // Create 单条插入 |
| | | func (slf *FinenessRegisterSearch) Create(record *FinenessRegister) error { |
| | | var db = slf.build() |
| | | |
| | | if err := db.Create(record).Error; err != nil { |
| | | return fmt.Errorf("create err: %v, record: %+v", err, record) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | // CreateBatch 批量插入 |
| | | func (slf *FinenessRegisterSearch) CreateBatch(records []*FinenessRegister) error { |
| | | var db = slf.build() |
| | | |
| | | if err := db.Create(&records).Error; err != nil { |
| | | return fmt.Errorf("create batch err: %v, records: %+v", err, records) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) Save(record *FinenessRegister) error { |
| | | var db = slf.build() |
| | | |
| | | if err := db.Omit("CreatedAt").Save(record).Error; err != nil { |
| | | return fmt.Errorf("save err: %v, record: %+v", err, record) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) Update(record *FinenessRegister) error { |
| | | var db = slf.build() |
| | | |
| | | if err := db.Updates(record).Error; err != nil { |
| | | return fmt.Errorf("save err: %v, record: %+v", err, record) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) UpdateByMap(upMap map[string]interface{}) error { |
| | | var ( |
| | | db = slf.build() |
| | | ) |
| | | |
| | | if err := db.Updates(upMap).Error; err != nil { |
| | | return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) UpdateByQuery(query string, args []interface{}, upMap map[string]interface{}) error { |
| | | var ( |
| | | db = slf.Orm.Table(slf.TableName()).Where(query, args...) |
| | | ) |
| | | |
| | | if err := db.Updates(upMap).Error; err != nil { |
| | | return fmt.Errorf("update by query err: %v, query: %s, args: %+v, upMap: %+v", err, query, args, upMap) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) Delete() error { |
| | | var db = slf.build() |
| | | |
| | | if err := db.Unscoped().Delete(&FinenessRegister{}).Error; err != nil { |
| | | return err |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) First() (*FinenessRegister, error) { |
| | | var ( |
| | | record = new(FinenessRegister) |
| | | db = slf.build() |
| | | ) |
| | | |
| | | if err := db.First(record).Error; err != nil { |
| | | return record, err |
| | | } |
| | | |
| | | return record, nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) Find() ([]*FinenessRegister, int64, error) { |
| | | var ( |
| | | records = make([]*FinenessRegister, 0) |
| | | total int64 |
| | | db = slf.build() |
| | | ) |
| | | |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return records, total, fmt.Errorf("find count err: %v", err) |
| | | } |
| | | if slf.PageNum*slf.PageSize > 0 { |
| | | db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) |
| | | } |
| | | if err := db.Find(&records).Error; err != nil { |
| | | return records, total, fmt.Errorf("find records err: %v", err) |
| | | } |
| | | |
| | | return records, total, nil |
| | | } |
| | | |
| | | func (slf *FinenessRegisterSearch) FindAll() ([]*FinenessRegister, error) { |
| | | var ( |
| | | records = make([]*FinenessRegister, 0) |
| | | db = slf.build() |
| | | ) |
| | | |
| | | if slf.PageNum*slf.PageSize > 0 { |
| | | db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) |
| | | } |
| | | if err := db.Find(&records).Error; err != nil { |
| | | return records, fmt.Errorf("find records err: %v", err) |
| | | } |
| | | |
| | | return records, nil |
| | | } |
| | | |
| | | // FindByQuery 指定条件查询. |
| | | func (slf *FinenessRegisterSearch) FindByQuery(query string, args []interface{}) ([]*FinenessRegister, int64, error) { |
| | | var ( |
| | | records = make([]*FinenessRegister, 0) |
| | | total int64 |
| | | db = slf.Orm.Table(slf.TableName()).Where(query, args...) |
| | | ) |
| | | |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return records, total, fmt.Errorf("find by query count err: %v", err) |
| | | } |
| | | if slf.PageNum*slf.PageSize > 0 { |
| | | db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) |
| | | } |
| | | if err := db.Find(&records).Error; err != nil { |
| | | return records, total, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) |
| | | } |
| | | |
| | | return records, total, nil |
| | | } |
| | | |
| | | // FindByQueryNotTotal 指定条件查询&不查询总条数. |
| | | func (slf *FinenessRegisterSearch) FindByQueryNotTotal(query string, args []interface{}) ([]*FinenessRegister, error) { |
| | | var ( |
| | | records = make([]*FinenessRegister, 0) |
| | | db = slf.Orm.Table(slf.TableName()).Where(query, args...) |
| | | ) |
| | | |
| | | if slf.PageNum*slf.PageSize > 0 { |
| | | db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) |
| | | } |
| | | if err := db.Find(&records).Error; err != nil { |
| | | return records, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) |
| | | } |
| | | |
| | | return records, nil |
| | | } |
| | | |
| | | // InitDefaultData 初始化数据 |
| | | func (slf *FinenessRegisterSearch) InitDefaultData() error { |
| | | return nil |
| | | } |
| | |
| | | systemApi.DELETE("dict/:id", DictController.Delete) // 删除词典 |
| | | } |
| | | |
| | | // 生产管理 |
| | | FinenessController := new(controllers.FinenessController) |
| | | finenessApi := r.Group(urlPrefix + "/fineness") |
| | | { |
| | | finenessApi.GET("register", FinenessController.List) // 获取纤度登记列表 |
| | | finenessApi.DELETE("register/:id", FinenessController.Delete) // 删除纤度登记 |
| | | } |
| | | |
| | | return r |
| | | } |