diff --git a/conf/config.go b/conf/config.go index f3201eb..1be3087 100644 --- a/conf/config.go +++ b/conf/config.go @@ -69,6 +69,8 @@ type EnvConfig struct { PermitThroughPlcType string `yaml:"permitthroughplctype"` PermitThroughPlcAddress string `yaml:"permitthroughplcaddress"` PermitThroughPlcDB string `yaml:"permitthroughdb"` + + StandardSerialOrderSnr string `yaml:"standardSerialOrderSnr"` } //read yaml config diff --git a/conf/config.yaml b/conf/config.yaml index e83d502..ca401a7 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -1,5 +1,6 @@ # 工厂号 finr: 100 +standardSerialOrderSnr: StandardSerialOrderSnr # mongdb数据库配置参数 mongdbname: LAPP_ACURA_MOM diff --git a/services/me/Product.service.go b/services/me/Product.service.go index 027514d..0d82dee 100644 --- a/services/me/Product.service.go +++ b/services/me/Product.service.go @@ -274,6 +274,8 @@ type ProductService interface { * ******************************************************************************/ SelectWorkLineByProduct(user *global.User, productId, projectId string) ([]baseModel.WorkLine, error) + // GenerateSnr 根据标准流水号生成总成流水号 + GenerateSnr(user *global.User, productId string, projectId string) error } /****************************************************************************** diff --git a/services/me/implments/Product.service.impl.go b/services/me/implments/Product.service.impl.go index b3b6eda..889af40 100644 --- a/services/me/implments/Product.service.impl.go +++ b/services/me/implments/Product.service.impl.go @@ -3,6 +3,7 @@ package implments import ( + "LAPP_ACURA_MOM_BACKEND/conf" baseDal "LAPP_ACURA_MOM_BACKEND/dao/base" dal "LAPP_ACURA_MOM_BACKEND/dao/me" "LAPP_ACURA_MOM_BACKEND/db" @@ -693,3 +694,51 @@ func (impl *ProductServiceImplement) SelectWorkLineByProduct(user *global.User, } return workLineLi, nil } + +// GenerateSnr 根据标准流水号生成总成流水号 +func (impl *ProductServiceImplement) GenerateSnr(user *global.User, productId string, projectId string) error { + engine := db.Eloquent.Master() + session := engine.NewSession() + defer session.Close() + dao := dal.NewProductDAO(session, user.PlantNr, user.UserId) + product, err := dao.SelectOne(productId, projectId) + if err != nil { + return grmi.NewBusinessError("查询总成失败, 错误:" + err.Error()) + } + if product == nil { + return grmi.NewBusinessError("总成不存在") + } + snrDao := baseDal.NewSnrDAO(session, user.PlantNr, user.UserId) + snr, err := snrDao.SelectOne(conf.DbConfig.StandardSerialOrderSnr) + if err != nil { + return grmi.NewBusinessError("查询标准流水号失败,错误:" + err.Error()) + } + if snr == nil { + return grmi.NewBusinessError("标准流水号不存在") + } + newSnr := snr + snrId := productId + "_" + projectId + "_SerialOrderSnr" + newSnr.SnrId = snrId + product.SerialOrderSnr = snrId + if err = session.Begin(); err != nil { + return grmi.NewBusinessError("开启事务失败, 错误:" + err.Error()) + } + defer func() { + if err != nil { + _ = session.Rollback() + } else { + _ = session.Commit() + } + }() + err = dao.UpdateOne(product) + if err != nil { + return grmi.NewBusinessError("更新总成数据失败, 错误:" + err.Error()) + } + err = snrDao.InsertOne(newSnr) + if err != nil { + return grmi.NewBusinessError("保存流水号失败,错误:" + err.Error()) + } + return nil + + +} \ No newline at end of file diff --git a/web/controllers/me/Product.rest.go b/web/controllers/me/Product.rest.go index 4e12624..406d911 100644 --- a/web/controllers/me/Product.rest.go +++ b/web/controllers/me/Product.rest.go @@ -566,3 +566,29 @@ func RegisterSelectWorkLineByProduct(party router.Party, path string, method fun supports.Ok(ctx, supports.OptionSuccess, result) }) } + +// RegisterGenerateSnr 根据标准流水号生成总成流水号 +func RegisterGenerateSnr(party router.Party, path string, method func(user *global.User, productId string, projectId string) error) { + + party.Post(path, func(ctx iris.Context) { + user, ok := jwts.ParseToken(ctx) + if !ok { + return + } + type Req struct{ + ProductId string `json:"productId"` + ProjectId string `json:"projectId"` + } + var data Req + if err := ctx.ReadJSON(&data); err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + err := method(user, data.ProductId, data.ProjectId) + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + supports.Ok(ctx, supports.OptionSuccess, nil) + }) +} \ No newline at end of file diff --git a/web/controllers/me/me.go b/web/controllers/me/me.go index 4faf169..da300ce 100644 --- a/web/controllers/me/me.go +++ b/web/controllers/me/me.go @@ -106,6 +106,8 @@ func RegisterRoutes() { RegisterCopyProduct(product, "/copy", serviceOfProduct.Copy) // Product 通过总成查询产线 RegisterSelectWorkLineByProduct(product, "/selectworkline", serviceOfProduct.SelectWorkLineByProduct) + // RegisterGenerateSnr 根据标准流水号生成总成流水号 + RegisterGenerateSnr(product, "/generatesnr", serviceOfProduct.GenerateSnr) // SetupMatrix的路由组 setupmatrix := party.Party("/setupmatrix")