|
|
@ -485,10 +485,9 @@ func (impl *SerialOrderServiceImplement) CancelSerialOrder(user *global.User, se |
|
|
|
if status == nil { |
|
|
|
return grmi.NewBusinessError("工单状态数据不存在, 工单ID:" + serialOrderId) |
|
|
|
} |
|
|
|
if status.Status != baseModel.WO_STATUS_UNPLANNED { |
|
|
|
if status.Status != baseModel.WO_STATUS_UNPLANNED && status.Status != baseModel.WO_STATUS_RELEASED { |
|
|
|
return grmi.NewBusinessError("工单状态不是未计划, 不允许取消, 工单ID:" + serialOrderId) |
|
|
|
} |
|
|
|
status.Status = baseModel.WO_STATUS_CANCELED |
|
|
|
if err := session.Begin(); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
@ -496,8 +495,9 @@ func (impl *SerialOrderServiceImplement) CancelSerialOrder(user *global.User, se |
|
|
|
statusRec := model.SerialOrderStatusRecLst{ |
|
|
|
SerialOrderId: serialOrderId, |
|
|
|
Status: baseModel.WO_STATUS_CANCELED, |
|
|
|
PrevStatus: baseModel.WO_STATUS_UNPLANNED, |
|
|
|
PrevStatus: status.Status, |
|
|
|
} |
|
|
|
status.Status = baseModel.WO_STATUS_CANCELED |
|
|
|
err = statusRecDao.InsertOne(&statusRec) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
@ -2366,25 +2366,46 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationData(user *globa |
|
|
|
if article == nil { |
|
|
|
return nil, grmi.NewBusinessError("工单绑定总成不存在, 总成ID:" + serialOrder.ArtId) |
|
|
|
} |
|
|
|
// 查询工单产线
|
|
|
|
workLineId := serialOrder.PlanResourceId |
|
|
|
// 通过产线查询生产工序
|
|
|
|
workLineProcessDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
poLi, err := workLineProcessDao.SelectProcessByWorkLine(workLineId) |
|
|
|
poDataLi, err := serialOrderPoDao.SelectWithPO(serialOrderId, serialOrder.UsedResourceId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询产线生产工序失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
if len(poLi) <= 1 { |
|
|
|
return nil, grmi.NewBusinessError("生产工序少于2个") |
|
|
|
return nil, grmi.NewBusinessError("查询工单工序操作数据失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
poIdLi := make([]string, 0, len(poLi)) |
|
|
|
for _, po := range poLi { |
|
|
|
if po.IsLastPO || po.IsLastPOForBK { |
|
|
|
continue |
|
|
|
var result model.TraceData |
|
|
|
result.Status = true |
|
|
|
result.BarCode = serialOrderId |
|
|
|
result.Desc = article.Descr1 |
|
|
|
displayPoLi := make([]string, 0) |
|
|
|
poStatusMap := make(map[string]string) |
|
|
|
for _, poData := range poDataLi { |
|
|
|
displayPoLi = append(displayPoLi, poData.Process.PO) |
|
|
|
if poData.Status == baseModel.WO_STATUS_FINISHED { |
|
|
|
poStatusMap[poData.Process.PO] = "成功" |
|
|
|
} else { |
|
|
|
poStatusMap[poData.Process.PO] = "失败" |
|
|
|
result.Status = false |
|
|
|
} |
|
|
|
poIdLi = append(poIdLi, po.PO) |
|
|
|
} |
|
|
|
displayPoLi := poIdLi |
|
|
|
//// 查询工单产线
|
|
|
|
//workLineId := serialOrder.PlanResourceId
|
|
|
|
//// 通过产线查询生产工序
|
|
|
|
//workLineProcessDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId)
|
|
|
|
//poLi, err := workLineProcessDao.SelectProcessByWorkLine(workLineId)
|
|
|
|
//if err != nil {
|
|
|
|
// return nil, grmi.NewBusinessError("查询产线生产工序失败, error:" + err.Error())
|
|
|
|
//}
|
|
|
|
//if len(poLi) <= 1 {
|
|
|
|
// return nil, grmi.NewBusinessError("生产工序少于2个")
|
|
|
|
//}
|
|
|
|
//poIdLi := make([]string, 0, len(poLi))
|
|
|
|
//for _, po := range poLi {
|
|
|
|
// if po.IsLastPO || po.IsLastPOForBK {
|
|
|
|
// continue
|
|
|
|
// }
|
|
|
|
// poIdLi = append(poIdLi, po.PO)
|
|
|
|
//}
|
|
|
|
//displayPoLi := poIdLi
|
|
|
|
|
|
|
|
|
|
|
|
// 查询工序关联的所有工位
|
|
|
|
processWorkPlaceDao := baseDal.NewProcessWorkPlaceLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
relateWorkPlaceLi, err := processWorkPlaceDao.SelectByProcess(displayPoLi) |
|
|
@ -2400,14 +2421,14 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationData(user *globa |
|
|
|
workPlaceMap[relateDate.WorkPlace.WorkPlaceNr] = relateDate.WorkPlace.WorkPlaceId |
|
|
|
} |
|
|
|
//stepDao := dal.NewSerialOrderStepLstDAO(session, user.PlantNr, user.UserId)
|
|
|
|
poIdLiInterface := make([]interface{}, 0, len(displayPoLi)) |
|
|
|
//poIdLiInterface := make([]interface{}, 0, len(displayPoLi))
|
|
|
|
selectPoIdLi := make([]string, 0, len(displayPoLi)) |
|
|
|
for _, poId := range displayPoLi { |
|
|
|
_, exist := ignorePOMap[poId] |
|
|
|
if exist { |
|
|
|
continue |
|
|
|
} |
|
|
|
poIdLiInterface = append(poIdLiInterface, poId) |
|
|
|
//poIdLiInterface = append(poIdLiInterface, poId)
|
|
|
|
selectPoIdLi = append(selectPoIdLi, poId) |
|
|
|
} |
|
|
|
|
|
|
@ -2415,28 +2436,17 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationData(user *globa |
|
|
|
//if err != nil {
|
|
|
|
// return nil, grmi.NewBusinessError("查询工单工步数据失败, error:" + err.Error())
|
|
|
|
//}
|
|
|
|
var result model.TraceData |
|
|
|
result.Status = true |
|
|
|
result.BarCode = serialOrderId |
|
|
|
result.Desc = article.Descr1 |
|
|
|
|
|
|
|
//for _, step := range stepLi {
|
|
|
|
// if step.Status != baseModel.WO_STATUS_FINISHED {
|
|
|
|
// result.Status = false
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
poDataLi, err := serialOrderPoDao.Select([]grmi.Predicate{meta.SerialOrderPOLst_SerialOrderId.NewPredicate(grmi.Equal, serialOrderId), meta.SerialOrderPOLst_PO.NewPredicate(grmi.Include, poIdLiInterface...)}, nil) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询工单工序操作数据失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
poStatusMap := make(map[string]string) |
|
|
|
for _, poData := range poDataLi { |
|
|
|
if poData.Status == baseModel.WO_STATUS_FINISHED { |
|
|
|
poStatusMap[poData.PO] = "成功" |
|
|
|
} else { |
|
|
|
poStatusMap[poData.PO] = "失败" |
|
|
|
result.Status = false |
|
|
|
} |
|
|
|
} |
|
|
|
//poDataLi, err := serialOrderPoDao.Select([]grmi.Predicate{meta.SerialOrderPOLst_SerialOrderId.NewPredicate(grmi.Equal, serialOrderId), meta.SerialOrderPOLst_PO.NewPredicate(grmi.Include, poIdLiInterface...)}, nil)
|
|
|
|
//if err != nil {
|
|
|
|
// return nil, grmi.NewBusinessError("查询工单工序操作数据失败, error:" + err.Error())
|
|
|
|
//}
|
|
|
|
|
|
|
|
articleAtocdDao := baseDal.NewArticleAtcodLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
var needEOL bool |
|
|
|
var needSBR bool |
|
|
@ -2615,24 +2625,64 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationTraceData(user * |
|
|
|
needSBR = true |
|
|
|
} |
|
|
|
} |
|
|
|
// 查询工单产线
|
|
|
|
workLineId := serialOrder.PlanResourceId |
|
|
|
// 通过产线查询生产工序
|
|
|
|
workLineProcessDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
poLi, err := workLineProcessDao.SelectProcessByWorkLine(workLineId) |
|
|
|
//// 查询工单产线
|
|
|
|
//workLineId := serialOrder.PlanResourceId
|
|
|
|
//// 通过产线查询生产工序
|
|
|
|
//workLineProcessDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId)
|
|
|
|
//poLi, err := workLineProcessDao.SelectProcessByWorkLine(workLineId)
|
|
|
|
//if err != nil {
|
|
|
|
// return nil, grmi.NewBusinessError("查询产线生产工序失败, error:" + err.Error())
|
|
|
|
//}
|
|
|
|
//if len(poLi) <= 1 {
|
|
|
|
// return nil, grmi.NewBusinessError("生产工序少于2个")
|
|
|
|
//}
|
|
|
|
//poIdLi := make([]string, 0, len(poLi))
|
|
|
|
//for _, po := range poLi {
|
|
|
|
// poIdLi = append(poIdLi, po.PO)
|
|
|
|
//}
|
|
|
|
poDataLi, err := serialOrderPoDao.SelectWithPO(serialOrderId, serialOrder.UsedResourceId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询产线生产工序失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
if len(poLi) <= 1 { |
|
|
|
return nil, grmi.NewBusinessError("生产工序少于2个") |
|
|
|
return nil, grmi.NewBusinessError("查询工单工序操作数据失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
poIdLi := make([]string, 0, len(poLi)) |
|
|
|
for _, po := range poLi { |
|
|
|
poIdLi = append(poIdLi, po.PO) |
|
|
|
var result model.TraceData |
|
|
|
result.Status = true |
|
|
|
result.BarCode = serialOrderId |
|
|
|
result.Desc = article.Descr1 |
|
|
|
displayPoLi := make([]string, 0) |
|
|
|
poStatusMap := make(map[string]string) |
|
|
|
for _, poData := range poDataLi { |
|
|
|
displayPoLi = append(displayPoLi, poData.Process.PO) |
|
|
|
if poData.Status == baseModel.WO_STATUS_FINISHED { |
|
|
|
poStatusMap[poData.Process.PO] = "成功" |
|
|
|
} else { |
|
|
|
poStatusMap[poData.Process.PO] = "失败" |
|
|
|
result.Status = false |
|
|
|
} |
|
|
|
} |
|
|
|
//// 查询工单产线
|
|
|
|
//workLineId := serialOrder.PlanResourceId
|
|
|
|
//// 通过产线查询生产工序
|
|
|
|
//workLineProcessDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId)
|
|
|
|
//poLi, err := workLineProcessDao.SelectProcessByWorkLine(workLineId)
|
|
|
|
//if err != nil {
|
|
|
|
// return nil, grmi.NewBusinessError("查询产线生产工序失败, error:" + err.Error())
|
|
|
|
//}
|
|
|
|
//if len(poLi) <= 1 {
|
|
|
|
// return nil, grmi.NewBusinessError("生产工序少于2个")
|
|
|
|
//}
|
|
|
|
//poIdLi := make([]string, 0, len(poLi))
|
|
|
|
//for _, po := range poLi {
|
|
|
|
// if po.IsLastPO || po.IsLastPOForBK {
|
|
|
|
// continue
|
|
|
|
// }
|
|
|
|
// poIdLi = append(poIdLi, po.PO)
|
|
|
|
//}
|
|
|
|
//displayPoLi := poIdLi
|
|
|
|
|
|
|
|
|
|
|
|
// 查询工序关联的所有工位
|
|
|
|
processWorkPlaceDao := baseDal.NewProcessWorkPlaceLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
relateWorkPlaceLi, err := processWorkPlaceDao.SelectByProcess(poIdLi) |
|
|
|
relateWorkPlaceLi, err := processWorkPlaceDao.SelectByProcess(displayPoLi) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询工序关联的工位失败, error:" + err.Error()) |
|
|
|
} |
|
|
@ -2644,35 +2694,37 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationTraceData(user * |
|
|
|
} |
|
|
|
workPlaceMap[relateDate.WorkPlace.WorkPlaceNr] = relateDate.WorkPlace.WorkPlaceId |
|
|
|
} |
|
|
|
poIdLiInterface := make([]interface{}, 0, len(poIdLi)) |
|
|
|
selectPoIdLi := make([]string, 0, len(poIdLi)) |
|
|
|
for _, poId := range poIdLi { |
|
|
|
//stepDao := dal.NewSerialOrderStepLstDAO(session, user.PlantNr, user.UserId)
|
|
|
|
//poIdLiInterface := make([]interface{}, 0, len(displayPoLi))
|
|
|
|
selectPoIdLi := make([]string, 0, len(displayPoLi)) |
|
|
|
for _, poId := range displayPoLi { |
|
|
|
_, exist := ignorePOMap[poId] |
|
|
|
if exist { |
|
|
|
continue |
|
|
|
} |
|
|
|
//poIdLiInterface = append(poIdLiInterface, poId)
|
|
|
|
selectPoIdLi = append(selectPoIdLi, poId) |
|
|
|
poIdLiInterface = append(poIdLiInterface, poId) |
|
|
|
} |
|
|
|
var result model.TraceData |
|
|
|
result.BarCode = serialOrderId |
|
|
|
result.Desc = article.Descr1 |
|
|
|
result.Status = true |
|
|
|
result.IsFirstPiece = serialOrder.IsFirstPieceToggle |
|
|
|
result.TraceDataTraceData = make([]model.POOperationData, 0) |
|
|
|
poDataLi, err := serialOrderPoDao.Select([]grmi.Predicate{meta.SerialOrderPOLst_SerialOrderId.NewPredicate(grmi.Equal, serialOrderId), meta.SerialOrderPOLst_PO.NewPredicate(grmi.Include, poIdLiInterface...)}, nil) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询工单工序操作数据失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
poStatusMap := make(map[string]string) |
|
|
|
for _, poData := range poDataLi { |
|
|
|
if poData.Status == baseModel.WO_STATUS_FINISHED { |
|
|
|
poStatusMap[poData.PO] = "成功" |
|
|
|
} else { |
|
|
|
poStatusMap[poData.PO] = "失败" |
|
|
|
result.Status = false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//var result model.TraceData
|
|
|
|
//result.BarCode = serialOrderId
|
|
|
|
//result.Desc = article.Descr1
|
|
|
|
//result.Status = true
|
|
|
|
//result.IsFirstPiece = serialOrder.IsFirstPieceToggle
|
|
|
|
//result.TraceDataTraceData = make([]model.POOperationData, 0)
|
|
|
|
//poDataLi, err := serialOrderPoDao.Select([]grmi.Predicate{meta.SerialOrderPOLst_SerialOrderId.NewPredicate(grmi.Equal, serialOrderId), meta.SerialOrderPOLst_PO.NewPredicate(grmi.Include, poIdLiInterface...)}, nil)
|
|
|
|
//if err != nil {
|
|
|
|
// return nil, grmi.NewBusinessError("查询工单工序操作数据失败, error:" + err.Error())
|
|
|
|
//}
|
|
|
|
//poStatusMap := make(map[string]string)
|
|
|
|
//for _, poData := range poDataLi {
|
|
|
|
// if poData.Status == baseModel.WO_STATUS_FINISHED {
|
|
|
|
// poStatusMap[poData.PO] = "成功"
|
|
|
|
// } else {
|
|
|
|
// poStatusMap[poData.PO] = "失败"
|
|
|
|
// result.Status = false
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
// 通过工序和工单ID查询工步操作结果
|
|
|
|
opDao := dal.NewSerialOrderOPDetailRecvDataLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
|
|
|
|