#433 article新增字段status 创建订单时校验是否启用

Merged
louwenzhi merged 3 commits from feature_om into develop 3 years ago
  1. +3
    -1
      meta/base/Article.meta.go
  2. +1
    -0
      models/base/Article.model.go
  3. +3
    -0
      models/base/Const.go
  4. +2
    -0
      services/base/implments/Article.service.impl.go
  5. +18
    -2
      services/om/implments/SerialOrder.service.impl.go
  6. +6
    -2
      services/om/implments/WorkOrder.service.impl.go

+ 3
- 1
meta/base/Article.meta.go View File

@ -26,6 +26,7 @@ var Article_CustArtId = grmi.NewField("CustArtId", "Article.CustArtId", "custart
var Article_LearArtId = grmi.NewField("LearArtId", "Article.LearArtId", "learartid", grmi.TypeString)
var Article_PartId = grmi.NewField("PartId", "Article.PartId", "partid", grmi.TypeString)
var Article_CarModel = grmi.NewField("CarModel", "Article.CarModel", "carmodel", grmi.TypeString)
var Article_Status = grmi.NewField("Status", "Article.Status", "status", grmi.TypeInt)
var Article_AlternativeArtId = grmi.NewField("AlternativeArtId", "Article.AlternativeArtId", "alternativeartid", grmi.TypeString)
var Article_PlanResourceGroupId = grmi.NewField("PlanResourceGroupId", "Article.PlanResourceGroupId", "planresourcegroupid", grmi.TypeString)
var Article_PlanResourceId = grmi.NewField("PlanResourceId", "Article.PlanResourceId", "planresourceid", grmi.TypeString)
@ -88,6 +89,7 @@ var Article = grmi.NewEntity(
Article_LearArtId.Name: Article_LearArtId,
Article_PartId.Name: Article_PartId,
Article_CarModel.Name: Article_CarModel,
Article_Status.Name: Article_Status,
Article_AlternativeArtId.Name: Article_AlternativeArtId,
Article_PlanResourceGroupId.Name: Article_PlanResourceGroupId,
Article_PlanResourceId.Name: Article_PlanResourceId,
@ -128,4 +130,4 @@ var Article = grmi.NewEntity(
Article_CreateTime.Name: Article_CreateTime,
},
[]string{"PlantNr"},
[]string{"Descr1", "Descr2", "ArtTypeId", "ProjectId", "CustArtId", "LearArtId", "PartId", "CarModel", "AlternativeArtId", "PlanResourceGroupId", "PlanResourceId", "UsedResourceId", "UomId", "PlanScrapRate", "RatePerHourToggle", "TimePerItemToggle", "TimePerBatchToggle", "BatchTimeFieldToggle", "OpTimePerItem", "BatchTime", "QuantityPerHour", "MidBatchQuantity", "MidBatchTime", "EffectiveOpTime", "BatchingMethod", "DeliveryBuffer", "Icon", "DisplayColor", "Document", "DefaultRoute", "DefaultInspectPlanId", "LotSize", "ABCClass", "ArtSize1", "ArtSize2", "ArtSize3", "ArtSize4", "ArtSize5", "ArtSpec1", "ArtSpec2", "ArtSpec3", "ArtSpec4", "ArtSpec5", "LastUser"})
[]string{"Descr1", "Descr2", "ArtTypeId", "ProjectId", "CustArtId", "LearArtId", "PartId", "CarModel", "Status", "AlternativeArtId", "PlanResourceGroupId", "PlanResourceId", "UsedResourceId", "UomId", "PlanScrapRate", "RatePerHourToggle", "TimePerItemToggle", "TimePerBatchToggle", "BatchTimeFieldToggle", "OpTimePerItem", "BatchTime", "QuantityPerHour", "MidBatchQuantity", "MidBatchTime", "EffectiveOpTime", "BatchingMethod", "DeliveryBuffer", "Icon", "DisplayColor", "Document", "DefaultRoute", "DefaultInspectPlanId", "LotSize", "ABCClass", "ArtSize1", "ArtSize2", "ArtSize3", "ArtSize4", "ArtSize5", "ArtSpec1", "ArtSpec2", "ArtSpec3", "ArtSpec4", "ArtSpec5", "LastUser"})

+ 1
- 0
models/base/Article.model.go View File

@ -29,6 +29,7 @@ type Article struct {
CustArtId string `xorm:"nvarchar(40) 'CustArtId' not null" json:"Article-CustArtId"`
PartId string `xorm:"nvarchar(40) 'PartId' not null" json:"Article-PartId"`
CarModel string `xorm:"nvarchar(40) 'CarModel' not null" json:"Article-CarModel"`
Status int `xorm:"int 'Status' not null" json:"Article-Status"`
LearArtId string `xorm:"nvarchar(40) 'LearArtId' not null" json:"Article-LearArtId"`
AlternativeArtId string `xorm:"nvarchar(40) 'AlternativeArtId' not null" json:"Article-AlternativeArtId"`
PlanResourceGroupId string `xorm:"nvarchar(40) 'PlanResourceGroupId' not null" json:"Article-PlanResourceGroupId"`


+ 3
- 0
models/base/Const.go View File

@ -4,6 +4,9 @@ package base
const (
PlantNr = 100
ARTICLE_STATUS_USED = 1
ARTICLE_STATUS_UNUSED = 0
ProjectId = "G-FRAME"
A30PorjectId = "A30"
PlantName = "GAAS"


+ 2
- 0
services/base/implments/Article.service.impl.go View File

@ -31,6 +31,8 @@ var DefaultConditionOfArticle = grmi.NewCondition(
meta.Article_CustArtId.UrlParameterName: grmi.NewConditionItem(meta.Article_CustArtId, grmi.Equal, false),
meta.Article_LearArtId.UrlParameterName: grmi.NewConditionItem(meta.Article_LearArtId, grmi.Equal, false),
meta.Article_PartId.UrlParameterName: grmi.NewConditionItem(meta.Article_PartId, grmi.Equal, false),
meta.Article_CarModel.UrlParameterName: grmi.NewConditionItem(meta.Article_CarModel, grmi.Equal, false),
meta.Article_Status.UrlParameterName: grmi.NewConditionItem(meta.Article_Status, grmi.Equal, false),
meta.Article_AlternativeArtId.UrlParameterName: grmi.NewConditionItem(meta.Article_AlternativeArtId, grmi.Equal, false),
meta.Article_PlanResourceGroupId.UrlParameterName: grmi.NewConditionItem(meta.Article_PlanResourceGroupId, grmi.Equal, false),
meta.Article_PlanResourceId.UrlParameterName: grmi.NewConditionItem(meta.Article_PlanResourceId, grmi.Equal, false),


+ 18
- 2
services/om/implments/SerialOrder.service.impl.go View File

@ -3,6 +3,7 @@
package implments
import (
baseDal "LAPP_GAAS_GFrame_BACKEND/dao/base"
dal "LAPP_GAAS_GFrame_BACKEND/dao/om"
"LAPP_GAAS_GFrame_BACKEND/db"
"LAPP_GAAS_GFrame_BACKEND/grmi"
@ -350,7 +351,7 @@ func (impl *SerialOrderServiceImplement) InsertFromWorkOrder(user *models.Userta
workOrderStatusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid)
workOrderStatusRecDao := dal.NewWorkOrderStatusRecLstDAO(session, user.Pid, user.Userid)
serialOrderStatusDao := dal.NewSerialOrderStatusDAO(session, user.Pid, user.Userid)
articleDao := baseDal.NewArticleDAO(session, user.Pid, user.Userid)
for _, workOrderId := range workOrderIds {
workOrder, err := workOrderDao.SelectOne(workOrderId)
if err != nil {
@ -389,6 +390,7 @@ func (impl *SerialOrderServiceImplement) InsertFromWorkOrder(user *models.Userta
} else {
perDuration = endTime.Sub(now).Seconds() / workOrder.PlanQty
}
artMap := make(map[string]*baseModel.Article)
for i := 0; i < int(workOrder.PlanQty); i++ {
log.Debug("InsertFromWorkOrder for work order planQty")
snr := new(models.Snrtab)
@ -400,7 +402,21 @@ func (impl *SerialOrderServiceImplement) InsertFromWorkOrder(user *models.Userta
return nil, err
}
planStartDate := workOrder.PlanStartDate.Restore().Format("20060102")
prefix := workOrder.ArtId + baseModel.PlantName + planStartDate
article, exist := artMap[workOrder.ArtId]
if !exist {
article, err = articleDao.SelectOne(workOrder.ArtId)
if err != nil {
_ = session.Rollback()
log.Error("InsertFromWorkOrder 获取物料数据失败, error: " + err.Error())
return nil, err
}
if article == nil {
_ = session.Rollback()
log.Error("InsertFromWorkOrder , 工单物料不存在, 物料ID:"+ workOrder.ArtId)
return nil, err
}
}
prefix := article.PartId + baseModel.PlantName + planStartDate
serialOrderId := strings.Replace(serialNum, "SO-", prefix, 1)
var planEndTime time.Time
if perDuration != 0 {


+ 6
- 2
services/om/implments/WorkOrder.service.impl.go View File

@ -9,7 +9,6 @@ import (
apiMeta "LAPP_GAAS_GFrame_BACKEND/meta/api"
baseMeta "LAPP_GAAS_GFrame_BACKEND/meta/base"
meMeta "LAPP_GAAS_GFrame_BACKEND/meta/me"
//logDal "LAPP_GAAS_GFrame_BACKEND/dao/log"
dal "LAPP_GAAS_GFrame_BACKEND/dao/om"
"LAPP_GAAS_GFrame_BACKEND/db"
@ -141,7 +140,6 @@ func (impl *WorkOrderServiceImplement) InsertOne(user *models.Usertab, entity *m
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid)
articleDao := baseDal.NewArticleDAO(session, user.Pid, user.Userid)
statusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid)
@ -154,6 +152,9 @@ func (impl *WorkOrderServiceImplement) InsertOne(user *models.Usertab, entity *m
if article == nil {
return grmi.NewBusinessError("订单物料数据不存在")
}
if article.Status != baseModel.ARTICLE_STATUS_USED {
return grmi.NewBusinessError("物料未启用,物料ID:" + entity.WorkOrder.ArtId)
}
// 校验工单数量和状态 计划时间
workOrder := entity.WorkOrder
workQty := entity.WorkOrderQty
@ -196,6 +197,9 @@ func (impl *WorkOrderServiceImplement) InsertOne(user *models.Usertab, entity *m
_ = session.Rollback()
return grmi.NewBusinessError("BOM关联的物料不存在, artId:" + bomLst.CmatNr)
}
if bomArticle.Status != baseModel.ARTICLE_STATUS_USED {
return grmi.NewBusinessError("物料未启用,物料ID:" + bomArticle.ArtId)
}
snr := new(models.Snrtab)
snr.Finr = user.Pid
workOrderId, err := snr.GetNextSnrWithSession(session, "WorkOrder")


Loading…
Cancel
Save