#194 添加总成关联多产线和派生关联多产线功能

Merged
louwenzhi merged 1 commits from feature_om into develop 2 years ago
  1. +2
    -0
      meta/me/ProductWorkLineLst.meta.go
  2. +1
    -0
      models/me/ProductFamily.model.go
  3. +1
    -0
      models/me/ProductWorkLineLst.model.go
  4. +8
    -2
      models/me/me.go
  5. +23
    -22
      services/me/implments/ProductFamily.service.impl.go
  6. +23
    -13
      services/me/implments/ProductWorkLineLst.service.impl.go
  7. +25
    -0
      web/controllers/me/me.go

+ 2
- 0
meta/me/ProductWorkLineLst.meta.go View File

@ -18,6 +18,7 @@ import (
******************************************************************************/
var ProductWorkLineLst_PlantNr = grmi.NewField("PlantNr", "[ME_ProductWorkLineLst].PlantNr", "plantnr", grmi.TypeInt)
var ProductWorkLineLst_ProductId = grmi.NewField("ProductId", "[ME_ProductWorkLineLst].ProductId", "productid", grmi.TypeString)
var ProductWorkLineLst_ProjectId = grmi.NewField("ProjectId", "[ME_ProductWorkLineLst].ProjectId", "projectid", grmi.TypeString)
var ProductWorkLineLst_WorkLineId = grmi.NewField("WorkLineId", "[ME_ProductWorkLineLst].WorkLineId", "worklineid", grmi.TypeString)
var ProductWorkLineLst_WorkLineDescr = grmi.NewField("WorkLineDescr", "[ME_ProductWorkLineLst].WorkLineDescr", "worklinedescr", grmi.TypeString)
var ProductWorkLineLst_LastModify = grmi.NewField("LastModify", "[ME_ProductWorkLineLst].LastModify", "lastmodify", grmi.TypeDateTime)
@ -39,6 +40,7 @@ var ProductWorkLineLst = grmi.NewEntity(
map[string]grmi.Field{
ProductWorkLineLst_PlantNr.Name: ProductWorkLineLst_PlantNr,
ProductWorkLineLst_ProductId.Name: ProductWorkLineLst_ProductId,
ProductWorkLineLst_ProjectId.Name: ProductWorkLineLst_ProjectId,
ProductWorkLineLst_WorkLineId.Name: ProductWorkLineLst_WorkLineId,
ProductWorkLineLst_WorkLineDescr.Name: ProductWorkLineLst_WorkLineDescr,
ProductWorkLineLst_LastModify.Name: ProductWorkLineLst_LastModify,


+ 1
- 0
models/me/ProductFamily.model.go View File

@ -29,6 +29,7 @@ type ProductFamily struct {
ColorValue string `xorm:"nvarchar(40) 'ColorValue' not null" json:"ME_ProductFamily-ColorValue"`
BroadcastPoint string `xorm:"nvarchar(40) 'BroadcastPoint' not null" json:"ME_ProductFamily-BroadcastPoint"`
AutoGenPackToggle bool `xorm:"bit 'AutoGenPackToggle' not null" json:"ME_ProductFamily-AutoGenPackToggle"`
MultiWorkLineToggle bool `xorm:"bit 'MultiWorkLineToggle' not null" json:"ME_ProductFamily-MultiWorkLineToggle"`
Jph float64 `xorm:"float 'Jph' not null" json:"ME_ProductFamily-Jph"`
WorkLineId string `xorm:"nvarchar(40) 'WorkLineId' not null" json:"ME_ProductFamily-WorkLineId"`
PackTypeId string `xorm:"nvarchar(40) 'PackTypeId' not null" json:"ME_ProductFamily-PackTypeId"`


+ 1
- 0
models/me/ProductWorkLineLst.model.go View File

@ -22,6 +22,7 @@ import (
type ProductWorkLineLst struct {
PlantNr int `xorm:"pk int 'PlantNr'" json:"ME_ProductWorkLineLst-PlantNr"`
ProductId string `xorm:"pk nvarchar(40) 'ProductId'" json:"ME_ProductWorkLineLst-ProductId"`
ProjectId string `xorm:"pk nvarchar(40) 'ProjectId'" json:"ME_ProductWorkLineLst-ProjectId"`
WorkLineId string `xorm:"pk nvarchar(40) 'WorkLineId'" json:"ME_ProductWorkLineLst-WorkLineId"`
WorkLineDescr string `xorm:"nvarchar(100) 'WorkLineDescr' not null" json:"ME_ProductWorkLineLst-WorkLineDescr"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"ME_ProductWorkLineLst-LastModify"`


+ 8
- 2
models/me/me.go View File

@ -14,8 +14,14 @@ type BomLstWithArt struct {
// ProductWorkLineData 产品和产线绑定关系前端传入结构体
type ProductWorkLineData struct {
ProductId string `json:"productId"`
ProjectId string `json:"projectId"`
ProductWorkLineLstLi []ProductWorkLineLst `json:"productWorkLineLstLi"`
ProjectId string `json:"projectId"`
WorkLineIdLi []string `json:"workLineIdLi"`
}
// ProductFamilyWorkLineData 产品和产线绑定关系前端传入结构体
type ProductFamilyWorkLineData struct {
ProductFamilyId string `json:"productFamilyId"`
WorkLineIdLi []string `json:"workLineIdLi"`
}
// ProductFamilyRelateAndProduct ProductFamilyRelate Product连表


+ 23
- 22
services/me/implments/ProductFamily.service.impl.go View File

@ -28,28 +28,29 @@ import (
******************************************************************************/
var DefaultConditionOfProductFamily = grmi.NewCondition(
map[string]grmi.ConditionItem{
meta.ProductFamily_ProductFamilyId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProductFamilyId, grmi.Equal, true),
meta.ProductFamily_Descr.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Descr, grmi.Equal, false),
meta.ProductFamily_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProjectId, grmi.Equal, false),
meta.ProductFamily_ConfigValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ConfigValue, grmi.Equal, false),
meta.ProductFamily_ModelValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ModelValue, grmi.Equal, false),
meta.ProductFamily_ColorValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ColorValue, grmi.Equal, false),
meta.ProductFamily_BroadcastPoint.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_BroadcastPoint, grmi.Equal, false),
meta.ProductFamily_AutoGenPackToggle.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_AutoGenPackToggle, grmi.Equal, false),
meta.ProductFamily_Jph.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Jph, grmi.Equal, false),
meta.ProductFamily_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_WorkLineId, grmi.Equal, false),
meta.ProductFamily_PackTypeId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_PackTypeId, grmi.Equal, false),
meta.ProductFamily_CheckSyncKey.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CheckSyncKey, grmi.Equal, false),
meta.ProductFamily_Enable.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Enable, grmi.Equal, false),
meta.ProductFamily_CtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara1, grmi.Equal, false),
meta.ProductFamily_CtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara2, grmi.Equal, false),
meta.ProductFamily_CtrlStr1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr1, grmi.Equal, false),
meta.ProductFamily_CtrlStr2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr2, grmi.Equal, false),
meta.ProductFamily_CtrlTime1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime1, grmi.Approximate, false),
meta.ProductFamily_CtrlTime2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime2, grmi.Approximate, false),
meta.ProductFamily_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastModify, grmi.Approximate, false),
meta.ProductFamily_LastUser.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastUser, grmi.Equal, false),
meta.ProductFamily_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CreateTime, grmi.Approximate, false),
meta.ProductFamily_ProductFamilyId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProductFamilyId, grmi.Equal, true),
meta.ProductFamily_Descr.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Descr, grmi.Equal, false),
meta.ProductFamily_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProjectId, grmi.Equal, false),
meta.ProductFamily_ConfigValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ConfigValue, grmi.Equal, false),
meta.ProductFamily_ModelValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ModelValue, grmi.Equal, false),
meta.ProductFamily_ColorValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ColorValue, grmi.Equal, false),
meta.ProductFamily_BroadcastPoint.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_BroadcastPoint, grmi.Equal, false),
meta.ProductFamily_AutoGenPackToggle.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_AutoGenPackToggle, grmi.Equal, false),
meta.ProductFamily_MultiWorkLineToggle.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_MultiWorkLineToggle, grmi.Equal, false),
meta.ProductFamily_Jph.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Jph, grmi.Equal, false),
meta.ProductFamily_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_WorkLineId, grmi.Equal, false),
meta.ProductFamily_PackTypeId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_PackTypeId, grmi.Equal, false),
meta.ProductFamily_CheckSyncKey.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CheckSyncKey, grmi.Equal, false),
meta.ProductFamily_Enable.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Enable, grmi.Equal, false),
meta.ProductFamily_CtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara1, grmi.Equal, false),
meta.ProductFamily_CtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara2, grmi.Equal, false),
meta.ProductFamily_CtrlStr1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr1, grmi.Equal, false),
meta.ProductFamily_CtrlStr2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr2, grmi.Equal, false),
meta.ProductFamily_CtrlTime1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime1, grmi.Approximate, false),
meta.ProductFamily_CtrlTime2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime2, grmi.Approximate, false),
meta.ProductFamily_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastModify, grmi.Approximate, false),
meta.ProductFamily_LastUser.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastUser, grmi.Equal, false),
meta.ProductFamily_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CreateTime, grmi.Approximate, false),
},
nil,
)


+ 23
- 13
services/me/implments/ProductWorkLineLst.service.impl.go View File

@ -25,6 +25,7 @@ import (
var DefaultConditionOfProductWorkLineLst = grmi.NewCondition(
map[string]grmi.ConditionItem{
meta.ProductWorkLineLst_ProductId.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_ProductId, grmi.Equal, true),
meta.ProductWorkLineLst_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_ProjectId, grmi.Equal, true),
meta.ProductWorkLineLst_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_WorkLineId, grmi.Equal, true),
meta.ProductWorkLineLst_WorkLineDescr.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_WorkLineDescr, grmi.Equal, false),
meta.ProductWorkLineLst_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_LastModify, grmi.Approximate, false),
@ -338,48 +339,57 @@ func (impl *ProductWorkLineLstServiceImplement) Save(user *global.User, entity *
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
if err := session.Begin(); err != nil {
return err
}
dao := dal.NewProductWorkLineLstDAO(session, user.PlantNr, user.UserId)
productDao := dal.NewProductDAO(session, user.PlantNr, user.UserId)
workLineDao := baseDal.NewWorkLineDAO(session, user.PlantNr, user.UserId)
productId := entity.ProductId
projectId := entity.ProjectId
li := entity.ProductWorkLineLstLi
li := entity.WorkLineIdLi
product, err := productDao.SelectOne(productId, projectId)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("查询产品数据失败, error:" + err.Error())
}
if product == nil {
_ = session.Rollback()
return grmi.NewBusinessError("不存在对应的产品, 产品ID:" + productId)
}
for index, data := range li {
if !product.MultiWorkLineToggle {
return grmi.NewBusinessError("该总成未打开多产线开关!")
}
if len(li) <= 1 {
return grmi.NewBusinessError("产线数量小于两条")
}
var dataLi []model.ProductWorkLineLst
for _, workLineId := range li {
var data model.ProductWorkLineLst
data.ProductId = productId
data.ProjectId = projectId
data.WorkLineId = workLineId
workLine, err := workLineDao.SelectOne(data.WorkLineId)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("查询产线数据失败, error:" + err.Error())
}
if workLine == nil {
_ = session.Rollback()
return grmi.NewBusinessError("不存在对应的产线, 产线ID:" + data.WorkLineId)
}
if workLine.GroupType != baseModel.WORK_LINE_TYPE_REAL {
_ = session.Rollback()
return grmi.NewBusinessError("关联的产线不是实体产线, 产线ID:" + data.WorkLineId)
}
data.WorkLineDescr = workLine.Descr
li[index] = data
dataLi = append(dataLi, data)
}
if err = session.Begin(); err != nil {
return err
}
err = dao.DeleteWhere([]grmi.Predicate{meta.ProductWorkLineLst_ProductId.NewPredicate(grmi.Equal, productId)})
err = dao.DeleteWhere([]grmi.Predicate{
meta.ProductWorkLineLst_ProductId.NewPredicate(grmi.Equal, productId),
meta.ProductWorkLineLst_ProjectId.NewPredicate(grmi.Equal, projectId),
})
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("删除原有数据失败, error:" + err.Error())
}
err = dao.Insert(&li)
err = dao.Insert(&dataLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存失败, error:" + err.Error())


+ 25
- 0
web/controllers/me/me.go View File

@ -245,6 +245,31 @@ func RegisterRoutes() {
// ShipableAUConfig 保存一条
RegisterSaveShipableAUConfig(shipableauconfig, "/save", serviceOfShipableAUConfig.Save)
// ProductFamilyWorkLineLst的路由组
productfamilyworklinelst := party.Party("/productfamilyworklinelst")
// ProductFamilyWorkLineLst的服务实例
var serviceOfProductFamilyWorkLineLst = svr.NewProductFamilyWorkLineLstService()
// ProductFamilyWorkLineLst插入一条
// RegisterInsertOneProductFamilyWorkLineLst(productfamilyworklinelst, "/insertone", serviceOfProductFamilyWorkLineLst.InsertOne)
// ProductFamilyWorkLineLst插入多条
// RegisterInsertProductFamilyWorkLineLst(productfamilyworklinelst, "/insert", serviceOfProductFamilyWorkLineLst.Insert)
// ProductFamilyWorkLineLst删除一条
// RegisterDeleteOneProductFamilyWorkLineLst(productfamilyworklinelst, "/deleteone", serviceOfProductFamilyWorkLineLst.DeleteOne)
// ProductFamilyWorkLineLst删除多条
// RegisterDeleteProductFamilyWorkLineLst(productfamilyworklinelst, "/delete", serviceOfProductFamilyWorkLineLst.Delete)
// ProductFamilyWorkLineLst查询多条
RegisterSelectProductFamilyWorkLineLst(productfamilyworklinelst, "/selectlist", serviceOfProductFamilyWorkLineLst.Select)
// ProductFamilyWorkLineLst查询多条并分页
RegisterQueryProductFamilyWorkLineLst(productfamilyworklinelst, "/query", serviceOfProductFamilyWorkLineLst.SelectAndPaging)
// ProductFamilyWorkLineLst查询一条
RegisterSelectOneProductFamilyWorkLineLst(productfamilyworklinelst, "/selectone", serviceOfProductFamilyWorkLineLst.SelectOne)
// ProductFamilyWorkLineLst修改一条
// RegisterUpdateOneProductFamilyWorkLineLst(productfamilyworklinelst, "/updateone", serviceOfProductFamilyWorkLineLst.UpdateOne)
// ProductFamilyWorkLineLst修改多条
// RegisterUpdateProductFamilyWorkLineLst(productfamilyworklinelst, "/update", serviceOfProductFamilyWorkLineLst.Update)
// RegisterSaveFamilyWorkLineLst 保存派生和产线关联关系
RegisterSaveFamilyWorkLineLst(productfamilyworklinelst, "/save", serviceOfProductFamilyWorkLineLst.Save)
})
}


Loading…
Cancel
Save