Browse Source

下线打包可以混包

pull/148/head
zhangxin 3 years ago
parent
commit
b13703802e
1 changed files with 44 additions and 39 deletions
  1. +44
    -39
      services/jit/implments/PackOrder.service.impl.go

+ 44
- 39
services/jit/implments/PackOrder.service.impl.go View File

@ -466,8 +466,8 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return nil, grmi.NewBusinessError("条码对应的工单状态不允许打包")
}
serialOrder := serialOrderLi[0]
if serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK {
return nil, grmi.NewBusinessError("工单目检结果不符合要求")
if serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK && serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_FAIL {
return nil, grmi.NewBusinessError("工单未进行目检")
}
// 获取用户之前是否存在未关包的包装单 如果存在则使用之前的包装单ID 如果不存在则创建包装单 如果超过一个则报错
var packOrderId string
@ -501,12 +501,12 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
currentPackOrder := &model.PackOrderWithStatus{}
// 如果当前用户不存在操作中未关闭的包装单, 则创建包装单数据
if packOrderId == "" {
var packTypeId string
if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
packTypeId = model.PACK_TYPE_STD
} else {
packTypeId = model.PACK_TYPE_INT
}
var packTypeId string = model.PACK_TYPE_STD
//if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
// packTypeId = model.PACK_TYPE_STD
//} else {
// packTypeId = model.PACK_TYPE_INT
//}
packOrderId, err = snrDao.GetNextSnr(project.PackOrderSnr)
if err != nil {
_ = session.Rollback()
@ -575,11 +575,11 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return nil, grmi.NewBusinessError("对应的包装单数据不存在, 包装单ID:" + packOrderId)
}
// 如果工单时内部工单 则校验包装单类型 是不是符合要求 同时插入包装单
if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
_ = session.Rollback()
return nil, grmi.NewBusinessError("当前工单是序列工单,但是包装单是内部包装单。")
}
//if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
// if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("当前工单是序列工单,但是包装单是内部包装单。")
// }
//currentPackOrder.PackOrder.ActQty += 1
//currentPackOrder.PackOrder.PlanQty += 1
//currentPackOrder.PackOrder.Operator = user.UserId
@ -614,12 +614,12 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
//result.PackOrderId = currentPackOrder.PackOrder.PackOrderId
//result.MatchTemplateLi = make([]model.PackTemplate, 0)
//return result, nil
} else {
if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_INT {
_ = session.Rollback()
return nil, grmi.NewBusinessError("当前进行包装的包装单是标包, 但工单不是序列工单")
}
}
//} else {
// if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_INT {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("当前进行包装的包装单是标包, 但工单不是序列工单")
// }
//}
// 判断包装单是否校验CheckSyncKey
if currentPackOrder.PackOrder.CheckSyncKey {
@ -938,18 +938,18 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
} else if len(tempMatchLi) == 1 {
// 如果当前包装单匹配到一个模板 则直接将模板数据写入到当前包装单中
template := tempMatchLi[0]
var packTypeId string
if serialOrderLi[0].OrderType == baseModel.ODER_TYPE_INTERVAL {
packTypeId = model.PACK_TYPE_INT
} else {
packTypeId = template.PackTypeId
}
var checkSyncKey bool = true
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
checkSyncKey = false
} else {
checkSyncKey = template.CheckSyncKey
}
var packTypeId string = template.PackTypeId
//if serialOrderLi[0].OrderType == baseModel.ODER_TYPE_INTERVAL {
// packTypeId = model.PACK_TYPE_INT
//} else {
// packTypeId = template.PackTypeId
//}
var checkSyncKey bool = template.CheckSyncKey
//if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
// checkSyncKey = false
//} else {
// checkSyncKey = template.CheckSyncKey
//}
currentPackOrder.PackOrder.PackTemplateId = template.PackTemplateId
currentPackOrder.PackOrder.PackTypeId = packTypeId
currentPackOrder.PackOrder.PlanQty = template.PlanQty
@ -1005,15 +1005,20 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return result, nil
} else {
var checkSyncKey bool = true
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
checkSyncKey = false
} else {
for _, template := range tempMatchLi {
if !template.CheckSyncKey {
checkSyncKey = false
}
for _, template := range tempMatchLi {
if !template.CheckSyncKey {
checkSyncKey = false
}
}
//if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
// checkSyncKey = false
//} else {
// for _, template := range tempMatchLi {
// if !template.CheckSyncKey {
// checkSyncKey = false
// }
// }
//}
currentPackOrder.PackOrder.CheckSyncKey = checkSyncKey
err = packOrderDao.UpdateOne(&currentPackOrder.PackOrder)
@ -2250,7 +2255,7 @@ func (impl *PackOrderServiceImplement) MakeUpSeatData(session *xorm.Session, use
}
var status = `1`
for _, serialOrder := range serialOrderLi {
if serialOrder.SerialOrderStatus.Status != baseModel.WO_STATUS_FINISHED {
if serialOrder.SerialOrderStatus.Status != baseModel.WO_STATUS_FINISHED || serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK {
status = `0`
}
}


Loading…
Cancel
Save