Browse Source

修改跨长任务逻辑

feature_crossplant
zhangxin 2 years ago
parent
commit
7f8b3798e2
8 changed files with 143 additions and 78 deletions
  1. +3
    -1
      meta/me/ShipableAUConfig.meta.go
  2. +1
    -0
      models/base/Const.go
  3. +1
    -0
      models/me/ShipableAUConfig.model.go
  4. +12
    -8
      models/om/om.go
  5. +1
    -0
      models/pln/CustOrder.model.go
  6. +2
    -1
      services/me/implments/ShipableAUConfig.service.impl.go
  7. +88
    -67
      services/om/implments/SerialOrder.Craft.impl.go
  8. +35
    -1
      services/pln/implments/CustOrderLogic.service.impl.go

+ 3
- 1
meta/me/ShipableAUConfig.meta.go View File

@ -19,6 +19,7 @@ import (
var ShipableAUConfig_PlantNr = grmi.NewField("PlantNr", "[ME_ShipableAUConfig].PlantNr", "plantnr", grmi.TypeInt) var ShipableAUConfig_PlantNr = grmi.NewField("PlantNr", "[ME_ShipableAUConfig].PlantNr", "plantnr", grmi.TypeInt)
var ShipableAUConfig_ArtId = grmi.NewField("ArtId", "[ME_ShipableAUConfig].ArtId", "artid", grmi.TypeString) var ShipableAUConfig_ArtId = grmi.NewField("ArtId", "[ME_ShipableAUConfig].ArtId", "artid", grmi.TypeString)
var ShipableAUConfig_AuPo = grmi.NewField("AuPo", "[ME_ShipableAUConfig].AuPo", "aupo", grmi.TypeString) var ShipableAUConfig_AuPo = grmi.NewField("AuPo", "[ME_ShipableAUConfig].AuPo", "aupo", grmi.TypeString)
var ShipableAUConfig_AuPlantNr = grmi.NewField("AuPlantNr", "[ME_ShipableAUConfig].AuPlantNr", "auplantnr", grmi.TypeInt)
var ShipableAUConfig_BarCodeRule = grmi.NewField("BarCodeRule", "[ME_ShipableAUConfig].BarCodeRule", "barcoderule", grmi.TypeString) var ShipableAUConfig_BarCodeRule = grmi.NewField("BarCodeRule", "[ME_ShipableAUConfig].BarCodeRule", "barcoderule", grmi.TypeString)
var ShipableAUConfig_StrPara1 = grmi.NewField("StrPara1", "[ME_ShipableAUConfig].StrPara1", "strpara1", grmi.TypeString) var ShipableAUConfig_StrPara1 = grmi.NewField("StrPara1", "[ME_ShipableAUConfig].StrPara1", "strpara1", grmi.TypeString)
var ShipableAUConfig_StrPara2 = grmi.NewField("StrPara2", "[ME_ShipableAUConfig].StrPara2", "strpara2", grmi.TypeString) var ShipableAUConfig_StrPara2 = grmi.NewField("StrPara2", "[ME_ShipableAUConfig].StrPara2", "strpara2", grmi.TypeString)
@ -49,6 +50,7 @@ var ShipableAUConfig = grmi.NewEntity(
ShipableAUConfig_PlantNr.Name: ShipableAUConfig_PlantNr, ShipableAUConfig_PlantNr.Name: ShipableAUConfig_PlantNr,
ShipableAUConfig_ArtId.Name: ShipableAUConfig_ArtId, ShipableAUConfig_ArtId.Name: ShipableAUConfig_ArtId,
ShipableAUConfig_AuPo.Name: ShipableAUConfig_AuPo, ShipableAUConfig_AuPo.Name: ShipableAUConfig_AuPo,
ShipableAUConfig_AuPlantNr.Name: ShipableAUConfig_AuPlantNr,
ShipableAUConfig_BarCodeRule.Name: ShipableAUConfig_BarCodeRule, ShipableAUConfig_BarCodeRule.Name: ShipableAUConfig_BarCodeRule,
ShipableAUConfig_StrPara1.Name: ShipableAUConfig_StrPara1, ShipableAUConfig_StrPara1.Name: ShipableAUConfig_StrPara1,
ShipableAUConfig_StrPara2.Name: ShipableAUConfig_StrPara2, ShipableAUConfig_StrPara2.Name: ShipableAUConfig_StrPara2,
@ -64,4 +66,4 @@ var ShipableAUConfig = grmi.NewEntity(
ShipableAUConfig_CreateTime.Name: ShipableAUConfig_CreateTime, ShipableAUConfig_CreateTime.Name: ShipableAUConfig_CreateTime,
}, },
[]string{"PlantNr"}, []string{"PlantNr"},
[]string{"AuPo", "BarCodeRule", "StrPara1", "StrPara2", "StrPara3", "IntPara1", "IntPara2", "IntPara3", "Toggle1", "Toggle2", "Toggle3", "LastUser"})
[]string{"AuPo", "AuPlantNr", "BarCodeRule", "StrPara1", "StrPara2", "StrPara3", "IntPara1", "IntPara2", "IntPara3", "Toggle1", "Toggle2", "Toggle3", "LastUser"})

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

@ -129,6 +129,7 @@ const (
ODER_TYPE_INTERVAL = "INT" ODER_TYPE_INTERVAL = "INT"
ODER_TYPE_REODER = "REO" ODER_TYPE_REODER = "REO"
ORDER_TYPE_PRE = "PRE" ORDER_TYPE_PRE = "PRE"
ORDER_TYPE_CROSS = "CROSS"
ART_TYPE_FINISHED = "FINISHED" ART_TYPE_FINISHED = "FINISHED"
ART_TYPE_SEMI_FINISHED = "SEMI_FINISHED" ART_TYPE_SEMI_FINISHED = "SEMI_FINISHED"


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

@ -23,6 +23,7 @@ type ShipableAUConfig struct {
PlantNr int `xorm:"pk int 'PlantNr'" json:"ME_ShipableAUConfig-PlantNr"` PlantNr int `xorm:"pk int 'PlantNr'" json:"ME_ShipableAUConfig-PlantNr"`
ArtId string `xorm:"pk nvarchar(40) 'ArtId'" json:"ME_ShipableAUConfig-ArtId"` ArtId string `xorm:"pk nvarchar(40) 'ArtId'" json:"ME_ShipableAUConfig-ArtId"`
AuPo string `xorm:"nvarchar(40) 'AuPo' not null" json:"ME_ShipableAUConfig-AuPo"` AuPo string `xorm:"nvarchar(40) 'AuPo' not null" json:"ME_ShipableAUConfig-AuPo"`
AuPlantNr int `xorm:"int 'AuPlantNr' not null" json:"ME_ShipableAUConfig-AuPlantNr"`
BarCodeRule string `xorm:"nvarchar(40) 'BarCodeRule' not null" json:"ME_ShipableAUConfig-BarCodeRule"` BarCodeRule string `xorm:"nvarchar(40) 'BarCodeRule' not null" json:"ME_ShipableAUConfig-BarCodeRule"`
StrPara1 string `xorm:"nvarchar(100) 'StrPara1'" json:"ME_ShipableAUConfig-StrPara1"` StrPara1 string `xorm:"nvarchar(100) 'StrPara1'" json:"ME_ShipableAUConfig-StrPara1"`
StrPara2 string `xorm:"nvarchar(100) 'StrPara2'" json:"ME_ShipableAUConfig-StrPara2"` StrPara2 string `xorm:"nvarchar(100) 'StrPara2'" json:"ME_ShipableAUConfig-StrPara2"`


+ 12
- 8
models/om/om.go View File

@ -146,6 +146,10 @@ type OrderAUPoData struct {
SFP *baseModel.Article SFP *baseModel.Article
AllAttributeLi []baseModel.ArticleAttribute AllAttributeLi []baseModel.ArticleAttribute
ArtRelMap map[string]int ArtRelMap map[string]int
OtherPlant bool
OtherPlantNr int
ArtId string
LastAuPo string
} }
type ExportItem struct { type ExportItem struct {
@ -177,16 +181,16 @@ type ProductTraceStepData struct {
// SerialOrderCraft 工单工艺相关数据 // SerialOrderCraft 工单工艺相关数据
type SerialOrderCraft struct { type SerialOrderCraft struct {
SerialOrderLi []SerialOrder
SerialOrderStatusLi []SerialOrderStatus
SerialOrderPOLstLi []SerialOrderPOLst
SerialOrderStepLstLi []SerialOrderStepLst
SerialOrderLi []SerialOrder
SerialOrderStatusLi []SerialOrderStatus
SerialOrderPOLstLi []SerialOrderPOLst
SerialOrderStepLstLi []SerialOrderStepLst
SerialOrderOPDetailLi []SerialOrderOPDetail SerialOrderOPDetailLi []SerialOrderOPDetail
LabelHeadLi []baseModel.LabelHead
LabelDetailLi []baseModel.LabelDetail
LabelHeadLi []baseModel.LabelHead
LabelDetailLi []baseModel.LabelDetail
} }
type ReplaceId struct { type ReplaceId struct {
SnrId string
SnrId string
PlanTime time.Time PlanTime time.Time
}
}

+ 1
- 0
models/pln/CustOrder.model.go View File

@ -66,6 +66,7 @@ type CustOrder struct {
ActEndTime grmi.DateTime `xorm:"datetime 'ActEndTime' not null" json:"PLN_CustOrder-ActEndTime"` ActEndTime grmi.DateTime `xorm:"datetime 'ActEndTime' not null" json:"PLN_CustOrder-ActEndTime"`
QuantityPerHour int `xorm:"datetime 'QuantityPerHour' not null" json:"PLN_CustOrder-QuantityPerHour"` QuantityPerHour int `xorm:"datetime 'QuantityPerHour' not null" json:"PLN_CustOrder-QuantityPerHour"`
CtrlPara1 int `xorm:"int 'CtrlPara1' not null" json:"PLN_CustOrder-CtrlPara1"` CtrlPara1 int `xorm:"int 'CtrlPara1' not null" json:"PLN_CustOrder-CtrlPara1"`
// 跨工厂的调度数量
CtrlPara2 int `xorm:"int 'CtrlPara2' not null" json:"PLN_CustOrder-CtrlPara2"` CtrlPara2 int `xorm:"int 'CtrlPara2' not null" json:"PLN_CustOrder-CtrlPara2"`
CtrlStr1 string `xorm:"nvarchar(255) 'CtrlStr1' not null" json:"PLN_CustOrder-CtrlStr1"` CtrlStr1 string `xorm:"nvarchar(255) 'CtrlStr1' not null" json:"PLN_CustOrder-CtrlStr1"`
CtrlStr2 string `xorm:"nvarchar(255) 'CtrlStr2' not null" json:"PLN_CustOrder-CtrlStr2"` CtrlStr2 string `xorm:"nvarchar(255) 'CtrlStr2' not null" json:"PLN_CustOrder-CtrlStr2"`


+ 2
- 1
services/me/implments/ShipableAUConfig.service.impl.go View File

@ -27,6 +27,7 @@ var DefaultConditionOfShipableAUConfig = grmi.NewCondition(
map[string]grmi.ConditionItem{ map[string]grmi.ConditionItem{
meta.ShipableAUConfig_ArtId.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_ArtId, grmi.Equal, true), meta.ShipableAUConfig_ArtId.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_ArtId, grmi.Equal, true),
meta.ShipableAUConfig_AuPo.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_AuPo, grmi.Equal, false), meta.ShipableAUConfig_AuPo.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_AuPo, grmi.Equal, false),
meta.ShipableAUConfig_AuPlantNr.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_AuPlantNr, grmi.Equal, false),
meta.ShipableAUConfig_BarCodeRule.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_BarCodeRule, grmi.Equal, false), meta.ShipableAUConfig_BarCodeRule.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_BarCodeRule, grmi.Equal, false),
meta.ShipableAUConfig_StrPara1.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_StrPara1, grmi.Equal, false), meta.ShipableAUConfig_StrPara1.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_StrPara1, grmi.Equal, false),
meta.ShipableAUConfig_StrPara2.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_StrPara2, grmi.Equal, false), meta.ShipableAUConfig_StrPara2.UrlParameterName: grmi.NewConditionItem(meta.ShipableAUConfig_StrPara2, grmi.Equal, false),
@ -392,4 +393,4 @@ func (impl *ShipableAUConfigServiceImplement) Save(user *global.User, entity *mo
return nil return nil
} }
}
}

+ 88
- 67
services/om/implments/SerialOrder.Craft.impl.go View File

@ -110,7 +110,7 @@ func (impl *SerialOrderServiceImplement) GenerateProductCraft(user *global.User,
bomLstLi, err := bomLstDao.Select([]grmi.Predicate{ bomLstLi, err := bomLstDao.Select([]grmi.Predicate{
meMeta.BomLst_BomId.NewPredicate(grmi.Equal, productId), meMeta.BomLst_BomId.NewPredicate(grmi.Equal, productId),
meMeta.BomLst_ShipableAU.NewPredicate(grmi.Equal, true), meMeta.BomLst_ShipableAU.NewPredicate(grmi.Equal, true),
}, nil)
}, []grmi.Field{meMeta.BomLst_Position})
if err != nil { if err != nil {
return grmi.NewBusinessError("查询BOM子项数据失败, 错误:" + err.Error()) return grmi.NewBusinessError("查询BOM子项数据失败, 错误:" + err.Error())
} }
@ -124,13 +124,7 @@ func (impl *SerialOrderServiceImplement) GenerateProductCraft(user *global.User,
sfpUsedPoMap := make(map[string]interface{}) sfpUsedPoMap := make(map[string]interface{})
orderPoMap := make(map[string]*model.OrderAUPoData) orderPoMap := make(map[string]*model.OrderAUPoData)
for _, bomLst := range bomLstLi { for _, bomLst := range bomLstLi {
sfp, err := articleDao.SelectOne(bomLst.CmatNr, projectId)
if err != nil {
return grmi.NewBusinessError("查询物料失败, 错误:" + err.Error())
}
if sfp == nil {
return grmi.NewBusinessError("半成品物料不存在, 物料ID:" + bomLst.CmatNr)
}
auConfig, err := shipableAUConfigDao.SelectOne(bomLst.CmatNr) auConfig, err := shipableAUConfigDao.SelectOne(bomLst.CmatNr)
if err != nil { if err != nil {
return grmi.NewBusinessError("查询半成品配置数据失败, 错误:" + err.Error()) return grmi.NewBusinessError("查询半成品配置数据失败, 错误:" + err.Error())
@ -138,65 +132,81 @@ func (impl *SerialOrderServiceImplement) GenerateProductCraft(user *global.User,
if auConfig == nil { if auConfig == nil {
return grmi.NewBusinessError("半成品配置不存在, 物料ID:" + bomLst.CmatNr) return grmi.NewBusinessError("半成品配置不存在, 物料ID:" + bomLst.CmatNr)
} }
sfpBomHead, err := bomHeadDao.SelectOne(bomLst.CmatNr)
if err != nil {
return grmi.NewBusinessError("查询物料BOM失败, error:" + err.Error())
}
if sfpBomHead == nil {
return grmi.NewBusinessError("不存在对应的物料BOM, 物料ID:" + bomLst.CmatNr)
}
var sfpMe meModel.BomLst
sfpMe.PlantNr = user.PlantNr
sfpMe.BomId = sfpBomHead.BomId
sfpBomLstLi, err := sfpMe.SetMenu(sfpBomHead.MatNr)
if err != nil {
return grmi.NewBusinessError("获取BOM细则失败, error:" + err.Error())
}
if len(sfpBomLstLi) == 0 {
return grmi.NewBusinessError("未获取到BOM细则, 物料ID:" + bomHead.BomId)
}
sfpBomHead.BomLstLi = sfpBomLstLi
// 获取关联的所有零件ID
sfpArtMap := impl.ExtractArtId(sfpBomHead)
sfpArtIdLi := make([]string, 0, len(sfpArtMap))
for innerArtId := range sfpArtMap {
sfpArtIdLi = append(sfpArtIdLi, innerArtId)
}
sfpArtIdLi = append(sfpArtIdLi, sfp.ArtId)
sfpAllArticleAttributeLi, err := articleWithAttrDao.SelectWithArticleByArtIdLi(sfpArtIdLi, projectId)
if err != nil {
return grmi.NewBusinessError("查询半成品关联所有属性失败, 错误:" + err.Error())
}
auPoData, exist := poDataMap[auConfig.AuPo]
if !exist {
return grmi.NewBusinessError("半成品指定工序不存在于总工单的工序序列中, 半成品ID:" + sfp.ArtId)
}
// 根据该工序查询所有后序
poDataLi := impl.GetOrderPOLi(auPoData, poDataMap)
// 该工单用到的所有生产工序
poDataLi = append(poDataLi, auPoData)
// 查询这个工单需要用到的所有工艺数据
poIdLi := make([]string, 0, len(poDataLi))
for _, innerPoData := range poDataLi {
sfpUsedPoMap[innerPoData.PO] = nil
poIdLi = append(poIdLi, innerPoData.PO)
}
opLi, err := operationDao.GetMeOperation(sfpArtIdLi, projectId, poIdLi, workLineId)
if err != nil {
return grmi.NewBusinessError("获取工艺操作失败,error:" + err.Error())
}
if len(opLi) == 0 {
return grmi.NewBusinessError("未获取到工艺数据")
}
// 所有需要生成工单工序绑定的数据
orderPoMap[bomLst.CmatNr] = &model.OrderAUPoData{
Config: auConfig,
MeOperationLi: opLi,
IsMainOrder: false,
SFP: sfp,
AllAttributeLi: sfpAllArticleAttributeLi,
ArtRelMap: sfpArtMap,
if auConfig.AuPlantNr != user.PlantNr {
// 所有需要生成工单工序绑定的数据
orderPoMap[bomLst.CmatNr] = &model.OrderAUPoData{
OtherPlant: true,
OtherPlantNr: auConfig.AuPlantNr,
ArtId: bomLst.CmatNr,
LastAuPo: auConfig.AuPo,
}
} else {
sfp, err := articleDao.SelectOne(bomLst.CmatNr, projectId)
if err != nil {
return grmi.NewBusinessError("查询物料失败, 错误:" + err.Error())
}
if sfp == nil {
return grmi.NewBusinessError("半成品物料不存在, 物料ID:" + bomLst.CmatNr)
}
sfpBomHead, err := bomHeadDao.SelectOne(bomLst.CmatNr)
if err != nil {
return grmi.NewBusinessError("查询物料BOM失败, error:" + err.Error())
}
if sfpBomHead == nil {
return grmi.NewBusinessError("不存在对应的物料BOM, 物料ID:" + bomLst.CmatNr)
}
var sfpMe meModel.BomLst
sfpMe.PlantNr = user.PlantNr
sfpMe.BomId = sfpBomHead.BomId
sfpBomLstLi, err := sfpMe.SetMenu(sfpBomHead.MatNr)
if err != nil {
return grmi.NewBusinessError("获取BOM细则失败, error:" + err.Error())
}
if len(sfpBomLstLi) == 0 {
return grmi.NewBusinessError("未获取到BOM细则, 物料ID:" + bomHead.BomId)
}
sfpBomHead.BomLstLi = sfpBomLstLi
// 获取关联的所有零件ID
sfpArtMap := impl.ExtractArtId(sfpBomHead)
sfpArtIdLi := make([]string, 0, len(sfpArtMap))
for innerArtId := range sfpArtMap {
sfpArtIdLi = append(sfpArtIdLi, innerArtId)
}
sfpArtIdLi = append(sfpArtIdLi, sfp.ArtId)
sfpAllArticleAttributeLi, err := articleWithAttrDao.SelectWithArticleByArtIdLi(sfpArtIdLi, projectId)
if err != nil {
return grmi.NewBusinessError("查询半成品关联所有属性失败, 错误:" + err.Error())
}
auPoData, exist := poDataMap[auConfig.AuPo]
if !exist {
return grmi.NewBusinessError("半成品指定工序不存在于总工单的工序序列中, 半成品ID:" + sfp.ArtId)
}
// 根据该工序查询所有后序
poDataLi := impl.GetOrderPOLi(auPoData, poDataMap)
// 该工单用到的所有生产工序
poDataLi = append(poDataLi, auPoData)
// 查询这个工单需要用到的所有工艺数据
poIdLi := make([]string, 0, len(poDataLi))
for _, innerPoData := range poDataLi {
sfpUsedPoMap[innerPoData.PO] = nil
poIdLi = append(poIdLi, innerPoData.PO)
}
opLi, err := operationDao.GetMeOperation(sfpArtIdLi, projectId, poIdLi, workLineId)
if err != nil {
return grmi.NewBusinessError("获取工艺操作失败,error:" + err.Error())
}
if len(opLi) == 0 {
return grmi.NewBusinessError("未获取到工艺数据")
}
// 所有需要生成工单工序绑定的数据
orderPoMap[bomLst.CmatNr] = &model.OrderAUPoData{
Config: auConfig,
MeOperationLi: opLi,
IsMainOrder: false,
SFP: sfp,
AllAttributeLi: sfpAllArticleAttributeLi,
ArtRelMap: sfpArtMap,
}
} }
} }
mainOrderPOIdLi := make([]string, 0) mainOrderPOIdLi := make([]string, 0)
@ -281,6 +291,17 @@ func (impl *SerialOrderServiceImplement) GenerateProductCraft(user *global.User,
for _, orderOPData := range orderPoMap { for _, orderOPData := range orderPoMap {
var serialOrderId string var serialOrderId string
if !orderOPData.IsMainOrder { if !orderOPData.IsMainOrder {
// 如果是拆分到其他工厂
if orderOPData.OtherPlant {
usedSerialOrder = &model.SerialOrder{
PlantNr: orderOPData.OtherPlantNr,
ArtId: orderOPData.ArtId,
OrderType: baseModel.ORDER_TYPE_CROSS,
CtrlStr1: orderOPData.LastAuPo,
}
serialOrder.PreOrderLi = append(serialOrder.PreOrderLi, *usedSerialOrder)
continue
}
usedArticle = orderOPData.SFP usedArticle = orderOPData.SFP
if orderOPData.Config.BarCodeRule == baseModel.BARCODE_RULE_ACURA_PRE { if orderOPData.Config.BarCodeRule == baseModel.BARCODE_RULE_ACURA_PRE {


+ 35
- 1
services/pln/implments/CustOrderLogic.service.impl.go View File

@ -525,7 +525,7 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO
_ = session.Commit() _ = session.Commit()
return nil return nil
} }
crossPreOrderLi := make([]omModel.SerialOrder, 0)
// 产线组与所属产线的MAP数据结构 // 产线组与所属产线的MAP数据结构
workLineGroupMap := make(map[string]map[string]interface{}) workLineGroupMap := make(map[string]map[string]interface{})
workLineMap := make(map[string]baseModel.WorkLine) workLineMap := make(map[string]baseModel.WorkLine)
@ -647,6 +647,10 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO
copy(orderCraft.LabelHeadLi, serialOrder.LabelHeadLi) copy(orderCraft.LabelHeadLi, serialOrder.LabelHeadLi)
copy(orderCraft.LabelDetailLi, serialOrder.LabelDetailLi) copy(orderCraft.LabelDetailLi, serialOrder.LabelDetailLi)
for _, preOrder := range serialOrder.PreOrderLi { for _, preOrder := range serialOrder.PreOrderLi {
if preOrder.OrderType == baseModel.ORDER_TYPE_CROSS {
crossPreOrderLi = append(crossPreOrderLi, preOrder)
continue
}
newPreOrder := preOrder newPreOrder := preOrder
newPreOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(preOrder.SerialOrderPOLstLi), len(preOrder.SerialOrderPOLstLi)) newPreOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(preOrder.SerialOrderPOLstLi), len(preOrder.SerialOrderPOLstLi))
newPreOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(preOrder.SerialOrderStepLstLi), len(preOrder.SerialOrderStepLstLi)) newPreOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(preOrder.SerialOrderStepLstLi), len(preOrder.SerialOrderStepLstLi))
@ -748,6 +752,9 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO
writeLabelHeadLi = append(writeLabelHeadLi, serialOrder.LabelHeadLi...) writeLabelHeadLi = append(writeLabelHeadLi, serialOrder.LabelHeadLi...)
writeLabelDetailLi = append(writeLabelDetailLi, serialOrder.LabelDetailLi...) writeLabelDetailLi = append(writeLabelDetailLi, serialOrder.LabelDetailLi...)
for _, preOrder := range serialOrder.PreOrderLi { for _, preOrder := range serialOrder.PreOrderLi {
if preOrder.OrderType == baseModel.ORDER_TYPE_CROSS {
continue
}
writeSerialOrderLi = append(writeSerialOrderLi, preOrder) writeSerialOrderLi = append(writeSerialOrderLi, preOrder)
writeSerialOrderStatusLi = append(writeSerialOrderStatusLi, preOrder.SerialOrderStatus) writeSerialOrderStatusLi = append(writeSerialOrderStatusLi, preOrder.SerialOrderStatus)
writeSerialOrderPoLi = append(writeSerialOrderPoLi, preOrder.SerialOrderPOLstLi...) writeSerialOrderPoLi = append(writeSerialOrderPoLi, preOrder.SerialOrderPOLstLi...)
@ -925,6 +932,33 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO
log.Error("客户订单已经派工完成,但是并没有改变客户订单状态, 当前派工客户订单ID:" + custOrderData.CustOrderId) log.Error("客户订单已经派工完成,但是并没有改变客户订单状态, 当前派工客户订单ID:" + custOrderData.CustOrderId)
} }
log.Info("客户订单已经派工完成, 当前派工客户订单ID:" + custOrderData.CustOrderId) log.Info("客户订单已经派工完成, 当前派工客户订单ID:" + custOrderData.CustOrderId)
if len(crossPreOrderLi) != 0 {
var artId, lastAuPo string
toPlantNr := crossPreOrderLi[0].PlantNr
fromPlantNr := user.PlantNr
for index, preOrder := range crossPreOrderLi {
if index == 0 {
artId += ";"
lastAuPo += ";"
}
artId += preOrder.ArtId
lastAuPo += preOrder.CtrlStr1
}
CrossTask := baseModel.CrossPlanTask{
FromPlantNr: fromPlantNr,
ToPlantNr: toPlantNr,
ProjectId: custOrderData.ProjectId,
ArtId: artId,
PlanQty: custOrderData.OrderQty.PlanQty,
Status: baseModel.CROSS_TASK_STATUS_PLAN,
SchedType: custOrderData.CtrlPara2,
SourceOrderId string `xorm:"nvarchar(40) 'SourceOrderId'" json:"CrossPlanTask-SourceOrderId"`
PlanStartTime grmi.DateTime `xorm:"datetime 'PlanStartTime'" json:"CrossPlanTask-PlanStartTime"`
PlanEndTime grmi.DateTime `xorm:"datetime 'PlanEndTime'" json:"CrossPlanTask-PlanEndTime"`
Priority int `xorm:"int 'Priority'" json:"CrossPlanTask-Priority"`
LastPo
}
}
return nil return nil
} }


Loading…
Cancel
Save