Browse Source

Merge branch 'develop' of http://101.201.121.115:3000/leo/LAPP_LF_MOM_BACKEND into feature_om

# Conflicts:
#	dao/me/BomHead.dao.go
#	dao/me/implments/BomHead.dao.impl.go
#	services/me/BomHead.service.go
#	web/controllers/me/BomHead.rest.go
pull/93/head
zhangxin 3 years ago
parent
commit
5517a0e9ff
1 changed files with 51 additions and 182 deletions
  1. +51
    -182
      services/log/implments/PackOrder.service.impl.go

+ 51
- 182
services/log/implments/PackOrder.service.impl.go View File

@ -1003,6 +1003,18 @@ func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, ord
if orderInfo.Status != bmodel.WO_STATUS_FINISHED { if orderInfo.Status != bmodel.WO_STATUS_FINISHED {
return nil, grmi.NewBusinessError("该条码订单状态没有完成!") return nil, grmi.NewBusinessError("该条码订单状态没有完成!")
} }
//判断条码是否已经生成过包装
itemlstDAO := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid)
dataList, err := itemlstDAO.Select([]grmi.Predicate{
meta.PackOrderItemlst_SerialOrderId.NewPredicate(grmi.Equal, orderId),
}, nil)
if err != nil {
return nil, err
}
if len(dataList) > 0 {
return nil, grmi.NewBusinessError("该条码已经扫描过!")
}
//如果只有一个模板那么自动创建 //如果只有一个模板那么自动创建
if len(packTemplants) == 1 { if len(packTemplants) == 1 {
//开启session //开启session
@ -1022,20 +1034,11 @@ func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, ord
packsession.Rollback() packsession.Rollback()
return nil, grmi.NewBusinessError("生成包装流水号失败!") return nil, grmi.NewBusinessError("生成包装流水号失败!")
} }
packTemplateItemlstDAO := dal.NewPackTemplateItemlstDAO(session, user.Pid, user.Userid)
packTemplateItems, err := packTemplateItemlstDAO.Select([]grmi.Predicate{
meta.PackTemplateItemlst_PackTemplateId.NewPredicate(grmi.Equal, packTemplate.PackTemplateId),
}, nil)
if err != nil {
packsession.Rollback()
return nil, err
}
packOrderDAO := dal.NewPackOrderDAO(session, user.Pid, user.Userid) packOrderDAO := dal.NewPackOrderDAO(session, user.Pid, user.Userid)
err = packOrderDAO.InsertOne(&model.PackOrder{ err = packOrderDAO.InsertOne(&model.PackOrder{
PlantNr: packTemplate.PlantNr, PlantNr: packTemplate.PlantNr,
PackOrderId: packOrderId, PackOrderId: packOrderId,
Status: bmodel.PACK_STATUS_RELEASED,
Status: bmodel.PACK_STATUS_RUNNING,
PackTemplateId: packTemplate.PackTemplateId, PackTemplateId: packTemplate.PackTemplateId,
PackTypeId: packTemplate.PackTypeId, PackTypeId: packTemplate.PackTypeId,
MaterialId: packTemplate.MaterialId, MaterialId: packTemplate.MaterialId,
@ -1043,6 +1046,7 @@ func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, ord
CreateDate: utils.TimeFormat(time.Now(), "yyyyMMdd"), CreateDate: utils.TimeFormat(time.Now(), "yyyyMMdd"),
Lot: utils.TimeFormat(time.Now(), "MMddyyyy"), Lot: utils.TimeFormat(time.Now(), "MMddyyyy"),
SiteCode: packTemplate.SiteCode, SiteCode: packTemplate.SiteCode,
ActQty: 1,
OpenTime: grmi.DateTime(time.Now()), OpenTime: grmi.DateTime(time.Now()),
PlanQty: float64(packTemplate.PlanQty), PlanQty: float64(packTemplate.PlanQty),
}) })
@ -1050,27 +1054,17 @@ func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, ord
packsession.Rollback() packsession.Rollback()
return nil, err return nil, err
} }
items := make([]*model.PackOrderItemlst, 0)
for _, packTemplateItem := range packTemplateItems {
items = append(items, &model.PackOrderItemlst{
PlantNr: packTemplateItem.PlantNr,
PackOrderId: packOrderId,
Pos: packTemplateItem.Pos,
PosCode: packTemplateItem.PosCode,
MaterialId: packTemplateItem.MaterialId,
PlanQty: float64(packTemplateItem.PlanQty),
ActQty: 0,
Status: bmodel.PACK_STATUS_RELEASED,
Seq: packTemplateItem.Seq,
})
}
packOrderItemlstDAO := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid)
for _, item := range items {
err = packOrderItemlstDAO.InsertOne(item)
if err != nil {
packsession.Rollback()
return nil, err
}
//插入包装项
packItems := new(model.PackOrderItemlst)
packItems.PlantNr = user.Pid
packItems.PackOrderId = packOrderId
packItems.SerialOrderId = orderId
packItems.Status = bmodel.PACK_STATUS_RUNNING
packItems.ActQty = 1
err = itemlstDAO.InsertOne(packItems)
if err != nil {
packsession.Rollback()
return nil, grmi.NewBusinessError("更新包装项失败!")
} }
packsession.Commit() packsession.Commit()
result := new(model.CreatePackOrderInfo) result := new(model.CreatePackOrderInfo)
@ -1112,18 +1106,6 @@ func (self *PackOrderServiceImplement) CreatePackOrderByTemplate(user *models.Us
session := engine.NewSession() session := engine.NewSession()
defer session.Close() defer session.Close()
packTemplateItemlstDAO := dal.NewPackTemplateItemlstDAO(session, user.Pid, user.Userid)
predicates, err := ConditionOfItemsOfPackOrderTemplate.BuildPredicates(map[string]string{
meta.PackTemplateItemlst_PackTemplateId.UrlParameterName: packTemplate.PackTemplateId,
})
if err != nil {
return err
}
packTemplateItems, err := packTemplateItemlstDAO.Select(predicates, ConditionOfPackTemplatesOfArticle.OrderByFields)
if err != nil {
return err
}
articleDAO := base.NewArticleDAO(session, user.Pid, user.Userid) articleDAO := base.NewArticleDAO(session, user.Pid, user.Userid)
article, err := articleDAO.SelectOne(packTemplate.MaterialId) article, err := articleDAO.SelectOne(packTemplate.MaterialId)
if err != nil { if err != nil {
@ -1160,27 +1142,6 @@ func (self *PackOrderServiceImplement) CreatePackOrderByTemplate(user *models.Us
if err != nil { if err != nil {
return err return err
} }
items := make([]*model.PackOrderItemlst, 0, 10)
for _, packTemplateItem := range packTemplateItems {
items = append(items, &model.PackOrderItemlst{
PlantNr: packTemplateItem.PlantNr,
PackOrderId: packOrderId,
Pos: packTemplateItem.Pos,
PosCode: packTemplateItem.PosCode,
MaterialId: packTemplateItem.MaterialId,
PlanQty: float64(packTemplateItem.PlanQty),
ActQty: 0,
Status: bmodel.PACK_STATUS_RELEASED,
Seq: packTemplateItem.Seq,
})
}
packOrderItemlstDAO := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid)
for _, item := range items {
err = packOrderItemlstDAO.InsertOne(item)
if err != nil {
return err
}
}
return nil return nil
} }
@ -1248,18 +1209,6 @@ func (self *PackOrderServiceImplement) CheckPackOrderItem(user *models.Usertab,
return "", grmi.NewBusinessError("没有在数据库中找到扫码内容对应的信息!") return "", grmi.NewBusinessError("没有在数据库中找到扫码内容对应的信息!")
} }
itemlstDAO := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid) itemlstDAO := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid)
//判断条码是否符合包装规则
dataLens, err := itemlstDAO.Select([]grmi.Predicate{
meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid),
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
meta.PackOrderItemlst_MaterialId.NewPredicate(grmi.Equal, artId),
}, nil)
if err != nil {
return "", err
}
if len(dataLens) == 0 {
return "", grmi.NewBusinessError("该条码不符合该包装规则!")
}
//判断条码是否已经生成过包装 //判断条码是否已经生成过包装
dataList, err := itemlstDAO.Select([]grmi.Predicate{ dataList, err := itemlstDAO.Select([]grmi.Predicate{
@ -1278,96 +1227,41 @@ func (self *PackOrderServiceImplement) CheckPackOrderItem(user *models.Usertab,
if err != nil { if err != nil {
return "", err return "", err
} }
//查询待检测包装位置
dao := dal.NewPackOrderItemlstDAO(packsession, user.Pid, user.Userid)
infoPos, err := dao.SelectOnePos(packOrderId, artId)
if err != nil {
return "", err
}
if infoPos == nil {
return "", grmi.NewBusinessError("没有待扫描的条码!")
}
//校验位置对应的零件是否一致
if infoPos.MaterialId != artId {
return "", grmi.NewBusinessError("编码位置对应的零件号和条码不一致!")
}
//1.更新对应的包装项信息
PackOrderItemlst := new(model.PackOrderItemlst)
PackOrderItemlst.PlantNr = user.Pid
PackOrderItemlst.PackOrderId = packOrderId
PackOrderItemlst.Pos = infoPos.Pos
PackOrderItemlst.SerialOrderId = orderId
PackOrderItemlst.ActQty = 1
PackOrderItemlst.Status = bmodel.PACK_STATUS_RUNNING
columns := []string{"SerialOrderId", "Status", "ActQty"}
err = dao.UpdateWhere([]grmi.Predicate{
meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid),
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
meta.PackOrderItemlst_Status.NewPredicate(grmi.Equal, bmodel.PACK_STATUS_RELEASED),
meta.PackOrderItemlst_Pos.NewPredicate(grmi.Equal, infoPos.Pos),
}, PackOrderItemlst, columns...)
//插入包装项
packItems := new(model.PackOrderItemlst)
packItems.PlantNr = user.Pid
packItems.PackOrderId = packOrderId
packItems.SerialOrderId = orderId
packItems.Status = bmodel.PACK_STATUS_RUNNING
packItems.ActQty = 1
err = itemlstDAO.InsertOne(packItems)
if err != nil { if err != nil {
packsession.Rollback() packsession.Rollback()
return "", grmi.NewBusinessError("更新包装项失败!") return "", grmi.NewBusinessError("更新包装项失败!")
} }
//2.判断是否满足关包
dataInfo, err := dao.Select([]grmi.Predicate{
meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid),
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
meta.PackOrderItemlst_Status.NewPredicate(grmi.LessThen, bmodel.PACK_STATUS_RUNNING),
}, nil)
//更新数量
pdao := dal.NewPackOrderDAO(packsession, user.Pid, user.Userid)
pack, err := pdao.SelectOne(packOrderId)
if err != nil { if err != nil {
packsession.Rollback() packsession.Rollback()
return "", grmi.NewBusinessError("更新包装项失败!")
return "", err
} }
isClose := false
if len(dataInfo) == 0 {
isClose = true
//满足关包
pdao := dal.NewPackOrderDAO(packsession, user.Pid, user.Userid)
pack, err := pdao.SelectOne(packOrderId)
if err != nil {
packsession.Rollback()
return "", err
}
if pack == nil {
packsession.Rollback()
return "", grmi.NewBusinessError("不存在指定记录!")
}
pack.PlantNr = user.Pid
pack.PackOrderId = packOrderId
pack.Status = bmodel.PACK_STATUS_CLOSED
pack.CloseTime = grmi.DateTime(time.Now())
pack.ActQty = pack.PlanQty
err = pdao.UpdateOne(pack)
if err != nil {
packsession.Rollback()
return "", grmi.NewBusinessError("更新包装单状态失败!")
}
Itemlst := new(model.PackOrderItemlst)
Itemlst.PlantNr = user.Pid
Itemlst.PackOrderId = packOrderId
Itemlst.Status = bmodel.PACK_STATUS_CLOSED
columns := []string{"Status"}
err = dao.UpdateWhere([]grmi.Predicate{
meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid),
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
}, Itemlst, columns...)
if err != nil {
packsession.Rollback()
return "", grmi.NewBusinessError("更新包装项状态失败!")
}
if pack == nil {
packsession.Rollback()
return "", grmi.NewBusinessError("不存在指定记录!")
} }
packsession.Commit()
if isClose {
return "close", nil
pack.PlantNr = user.Pid
pack.PackOrderId = packOrderId
pack.CloseTime = grmi.DateTime(time.Now())
pack.ActQty += 1
err = pdao.UpdateOne(pack)
if err != nil {
packsession.Rollback()
return "", grmi.NewBusinessError("更新包装单状态失败!")
} }
packsession.Commit()
return "", nil return "", nil
} }
@ -1403,14 +1297,7 @@ func (self *PackOrderServiceImplement) ClosePackOrderItem(user *models.Usertab,
return err return err
} }
dao := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid) dao := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid)
//查询已经关闭的单数
items, err := dao.Select([]grmi.Predicate{
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
meta.PackOrderItemlst_Status.NewPredicate(grmi.Equal, bmodel.PACK_STATUS_RUNNING),
}, nil)
if err != nil {
return err
}
//1.更新包装单 //1.更新包装单
pdao := dal.NewPackOrderDAO(session, user.Pid, user.Userid) pdao := dal.NewPackOrderDAO(session, user.Pid, user.Userid)
@ -1427,7 +1314,6 @@ func (self *PackOrderServiceImplement) ClosePackOrderItem(user *models.Usertab,
pack.PackOrderId = packOrderId pack.PackOrderId = packOrderId
pack.Status = bmodel.PACK_STATUS_CLOSED pack.Status = bmodel.PACK_STATUS_CLOSED
pack.CloseTime = grmi.DateTime(time.Now()) pack.CloseTime = grmi.DateTime(time.Now())
pack.ActQty = float64(len(items))
err = pdao.UpdateOne(pack) err = pdao.UpdateOne(pack)
if err != nil { if err != nil {
session.Rollback() session.Rollback()
@ -1444,25 +1330,8 @@ func (self *PackOrderServiceImplement) ClosePackOrderItem(user *models.Usertab,
err = dao.UpdateWhere([]grmi.Predicate{ err = dao.UpdateWhere([]grmi.Predicate{
meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid), meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid),
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId), meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
meta.PackOrderItemlst_Status.NewPredicate(grmi.Equal, bmodel.PACK_STATUS_RUNNING),
}, PackOrderItemlstOne, columns...) }, PackOrderItemlstOne, columns...)
if err != nil {
session.Rollback()
return grmi.NewBusinessError("更新包装项失败!")
}
//2) 更新等待(26)的状态 ==> (98)
PackOrderItemlstTwo := new(model.PackOrderItemlst)
PackOrderItemlstTwo.PlantNr = user.Pid
PackOrderItemlstTwo.PackOrderId = packOrderId
PackOrderItemlstTwo.Status = bmodel.PACK_STATUS_CANCELED
// 1) 更新处理中(40)的状态 ==> (80)
err = dao.UpdateWhere([]grmi.Predicate{
meta.PackOrderItemlst_PlantNr.NewPredicate(grmi.Equal, user.Pid),
meta.PackOrderItemlst_PackOrderId.NewPredicate(grmi.Equal, packOrderId),
meta.PackOrderItemlst_Status.NewPredicate(grmi.Equal, bmodel.PACK_STATUS_RELEASED),
}, PackOrderItemlstTwo, columns...)
if err != nil { if err != nil {
session.Rollback() session.Rollback()
return grmi.NewBusinessError("更新包装项失败!") return grmi.NewBusinessError("更新包装项失败!")


Loading…
Cancel
Save