|
|
@ -119,7 +119,7 @@ func (impl *ParseMesWorkOrderServiceImplement) DealFileDemandHead(demandHead mod |
|
|
|
artDemandHeadDao := logDal.NewArtDemandHeadDAO(sessionTX, demandHead.PlantNr, "crontab") |
|
|
|
artDemandLstDao := logDal.NewArtDemandLstDAO(sessionTX, demandHead.PlantNr, "crontab") |
|
|
|
articleDao := baseDal.NewArticleDAO(sessionTX, demandHead.PlantNr, "crontab") |
|
|
|
demandLstLi, err := demandLstDao.Select([]grmi.Predicate{meta.DemandLst_FileNr.NewPredicate(grmi.Equal, demandHead.FileNr)}, []grmi.Field{}) |
|
|
|
demandLstLi, err := demandLstDao.Select([]grmi.Predicate{meta.DemandLst_FileNr.NewPredicate(grmi.Equal, demandHead.FileNr)}, []grmi.Field{meta.DemandLst_PartCode}) |
|
|
|
if err != nil { |
|
|
|
log.Error("ParseMesWorkOrder DealArtDemand delete art demandLst failed, error: " + err.Error()) |
|
|
|
return |
|
|
@ -323,9 +323,18 @@ func (impl *ParseMesWorkOrderServiceImplement) DealWorkOrder(pid int, |
|
|
|
return workOrder, workOrderStatus, workOrderQty, err |
|
|
|
} |
|
|
|
var newWorkOrderSign = true |
|
|
|
fmt.Println("len(workOrderLi):", len(workOrderLi)) |
|
|
|
if len(workOrderLi) != 0 { |
|
|
|
workOrder = workOrderLi[0] |
|
|
|
var sign bool |
|
|
|
for _, dbWorkOrder := range workOrderLi { |
|
|
|
if dbWorkOrder.PlanQty == qty { |
|
|
|
workOrder = dbWorkOrder |
|
|
|
sign = true |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
if !sign { |
|
|
|
workOrder = workOrderLi[0] |
|
|
|
} |
|
|
|
workOrderStatusPoint, err := workOrderStatusDao.SelectOne(workOrder.WorkOrderId) |
|
|
|
if err != nil { |
|
|
|
log.Error("ParseMesWorkOrder DealWorkOrder get work order status failed, error: " + err.Error()) |
|
|
@ -531,14 +540,11 @@ func (impl *ParseMesWorkOrderServiceImplement) DealArtDemand(pid int, |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
fmt.Println("demandId:", demandId) |
|
|
|
oldArtDemandLstLi, err := artDemandLstDao.SelectWithoutAuthority([]grmi.Predicate{logMeta.ArtDemandLst_DemandId.NewPredicate(grmi.Equal, demandId)}, nil) |
|
|
|
if err != nil { |
|
|
|
log.Error("ParseMesWorkOrder DealArtDemand select art demandLst failed, error: " + err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
fmt.Println("oldArtDemandLstLi:", len(oldArtDemandLstLi)) |
|
|
|
fmt.Println("demandLstLi:", len(demandLstLi)) |
|
|
|
type DemandLstWithBool struct { |
|
|
|
DemandLst logModel.ArtDemandLst |
|
|
|
Sign bool |
|
|
@ -568,9 +574,7 @@ func (impl *ParseMesWorkOrderServiceImplement) DealArtDemand(pid int, |
|
|
|
} else if innerStatus == model.WO_STATUS_CANCELED { |
|
|
|
artDemandStatus = baseModel.WO_STATUS_CANCELED |
|
|
|
} |
|
|
|
fmt.Println("demandLst.Pos:", demandLst.Pos) |
|
|
|
oldDemandLstWithBool, exist := artDemandLstMap[demandLst.DemandNr] |
|
|
|
fmt.Println("exist:", exist) |
|
|
|
var artDemandLst logModel.ArtDemandLst |
|
|
|
if exist { |
|
|
|
oldDemandLstWithBool.Sign = true |
|
|
@ -615,8 +619,6 @@ func (impl *ParseMesWorkOrderServiceImplement) DealArtDemand(pid int, |
|
|
|
artDemandLstInsertLi = append(artDemandLstInsertLi, artDemandLst) |
|
|
|
} |
|
|
|
} |
|
|
|
fmt.Println("insert length:", len(artDemandLstInsertLi)) |
|
|
|
fmt.Println("update length:", len(artDemandLstUpdateLi)) |
|
|
|
// 批量插入时 一次最多插入50条
|
|
|
|
demandLstTempLi := make([]logModel.ArtDemandLst, 0, 50) |
|
|
|
for index, demandLst := range artDemandLstInsertLi { |
|
|
@ -757,7 +759,7 @@ func (impl *ParseMesWorkOrderServiceImplement) DealDBDemandHead(demandHead model |
|
|
|
artDemandHeadDao := logDal.NewArtDemandHeadDAO(sessionTX, demandHead.PlantNr, "crontab") |
|
|
|
artDemandLstDao := logDal.NewArtDemandLstDAO(sessionTX, demandHead.PlantNr, "crontab") |
|
|
|
articleDao := baseDal.NewArticleDAO(sessionTX, demandHead.PlantNr, "crontab") |
|
|
|
demandLstLi, err := demandLstDao.Select([]grmi.Predicate{meta.DemandLst_TaskNr.NewPredicate(grmi.Equal, demandHead.TaskNr)}, []grmi.Field{}) |
|
|
|
demandLstLi, err := demandLstDao.Select([]grmi.Predicate{meta.DemandLst_TaskNr.NewPredicate(grmi.Equal, demandHead.TaskNr)}, []grmi.Field{meta.DemandLst_PartCode}) |
|
|
|
if err != nil { |
|
|
|
log.Error("ParseMesWorkOrder DealDBDemandHead get art demandLst failed, error: " + err.Error()) |
|
|
|
return |
|
|
@ -779,6 +781,7 @@ func (impl *ParseMesWorkOrderServiceImplement) DealDBDemandHead(demandHead model |
|
|
|
// 临时记录的demandLst
|
|
|
|
var preDemandLst model.DemandLst |
|
|
|
tempLi := make([]model.DemandLst, 0, 30) |
|
|
|
cancelQty := 0 |
|
|
|
for _, demandLst := range demandLstLi { |
|
|
|
if partCode == "" { |
|
|
|
partCode = demandLst.PartCode |
|
|
@ -788,10 +791,14 @@ func (impl *ParseMesWorkOrderServiceImplement) DealDBDemandHead(demandHead model |
|
|
|
} |
|
|
|
if partCode != demandLst.PartCode || planDttm != demandLst.PlanDttm { |
|
|
|
var batchStatus = baseModel.WO_STATUS_RUNNING |
|
|
|
if maxStatus == minStatus && minStatus == baseModel.WO_STATUS_RELEASED { |
|
|
|
batchStatus = maxStatus |
|
|
|
} else if minStatus >= baseModel.WO_STATUS_FINISHED { |
|
|
|
batchStatus = maxStatus |
|
|
|
if cancelQty == qty { |
|
|
|
batchStatus = baseModel.WO_STATUS_CANCELED |
|
|
|
} else { |
|
|
|
if maxStatus == minStatus && minStatus == baseModel.WO_STATUS_RELEASED { |
|
|
|
batchStatus = maxStatus |
|
|
|
} else if minStatus >= baseModel.WO_STATUS_FINISHED { |
|
|
|
batchStatus = maxStatus |
|
|
|
} |
|
|
|
} |
|
|
|
// 处理workOrder及其相关表
|
|
|
|
workOrder, workOrderStatus, workOrderQty, err := impl.DealWorkOrder(demandHead.PlantNr, |
|
|
@ -836,6 +843,7 @@ func (impl *ParseMesWorkOrderServiceImplement) DealDBDemandHead(demandHead model |
|
|
|
qty = 0 |
|
|
|
runningQty = 0 |
|
|
|
finishedQty = 0 |
|
|
|
cancelQty = 0 |
|
|
|
planDttm = demandLst.PlanDttm |
|
|
|
tempLi = make([]model.DemandLst, 0, 30) |
|
|
|
} |
|
|
@ -855,22 +863,24 @@ func (impl *ParseMesWorkOrderServiceImplement) DealDBDemandHead(demandHead model |
|
|
|
} else if demandLst.State == model.WO_STATUS_CANCELED { |
|
|
|
status = baseModel.WO_STATUS_CANCELED |
|
|
|
finishedQty += 1 |
|
|
|
cancelQty += 1 |
|
|
|
} else { |
|
|
|
log.Error("ParseMesWorkOrder DealFileDemandHead failed get unknown state :" + strconv.Itoa(demandLst.State)) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if minStatus == baseModel.WO_STATUS_UNPLANNED { |
|
|
|
minStatus = status |
|
|
|
} |
|
|
|
if maxStatus == baseModel.WO_STATUS_UNPLANNED { |
|
|
|
maxStatus = status |
|
|
|
} |
|
|
|
if minStatus > status { |
|
|
|
minStatus = status |
|
|
|
} |
|
|
|
if maxStatus < status { |
|
|
|
maxStatus = status |
|
|
|
if status != baseModel.WO_STATUS_CANCELED { |
|
|
|
if minStatus == baseModel.WO_STATUS_UNPLANNED { |
|
|
|
minStatus = status |
|
|
|
} |
|
|
|
if maxStatus == baseModel.WO_STATUS_UNPLANNED { |
|
|
|
maxStatus = status |
|
|
|
} |
|
|
|
if minStatus > status { |
|
|
|
minStatus = status |
|
|
|
} |
|
|
|
if maxStatus < status { |
|
|
|
maxStatus = status |
|
|
|
} |
|
|
|
} |
|
|
|
qty += 1 |
|
|
|
tempLi = append(tempLi, demandLst) |
|
|
|