Browse Source

修改电检和sbr的逻辑

pull/229/head
zhangxin 2 years ago
parent
commit
65e9a0bfb1
1 changed files with 81 additions and 81 deletions
  1. +81
    -81
      services/om/implments/SerialOrder.Trace.impl.go

+ 81
- 81
services/om/implments/SerialOrder.Trace.impl.go View File

@ -286,67 +286,27 @@ func (impl *SerialOrderServiceImplement) ExtractEOL(session *xorm.Session, user
if plantProject == baseModel.PROJECT_ACURA {
eolEngine := db.Eloquent.Slaves()[2]
eolSession := eolEngine.NewSession()
f1Dao := eolDal.NewEOLTESTF1DAO(eolSession, user.UserId)
f2Dao := eolDal.NewEOLTESTF2DAO(eolSession, user.UserId)
rDao := eolDal.NewEOLTESTR1DAO(eolSession, user.UserId)
if product.CtrlStr1 == meModel.PRODUCT_TYPE_MS || product.CtrlStr1 == meModel.PRODUCT_TYPE_PS {
drLi, err := f1Dao.Select([]grmi.Predicate{eolMeta.EOLTESTF1_BARCODE.NewPredicate(grmi.Equal, serialOrder.SerialOrderId),
eolMeta.EOLTESTF1_DATE.NewPredicate(grmi.GreaterOrEqual, repairTime)}, []grmi.Field{eolMeta.EOLTESTF1_DATE})
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
paLi, err := f2Dao.Select([]grmi.Predicate{eolMeta.EOLTESTF2_BARCODE.NewPredicate(grmi.Equal, serialOrder.SerialOrderId),
eolMeta.EOLTESTF2_DATA.NewPredicate(grmi.GreaterOrEqual, repairTime)}, []grmi.Field{eolMeta.EOLTESTF2_DATA})
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
var lastDr *eolModel.EOLTESTF1
var lastPa *eolModel.EOLTESTF2
if len(drLi) > 0 {
lastDr = &drLi[len(drLi)-1]
}
if len(paLi) > 0 {
lastPa = &paLi[len(paLi)-1]
}
var totalResult string
var recordTime time.Time
if lastDr == nil && lastPa == nil {
return false, "未获取到有效电检数据", recordT, nil
} else if lastDr != nil && lastPa != nil {
if lastDr.DATE.Restore().After(lastPa.DATA.Restore()) {
totalResult = lastDr.TOTALRESULT
recordTime = lastDr.DATE.Restore()
} else {
totalResult = lastPa.TOTALRESULT
recordTime = lastPa.DATA.Restore()
}
} else if lastDr != nil && lastPa == nil {
totalResult = lastDr.TOTALRESULT
recordTime = lastDr.DATE.Restore()
} else if lastDr == nil && lastPa != nil {
totalResult = lastPa.TOTALRESULT
recordTime = lastPa.DATA.Restore()
}
if totalResult == model.EOL_STATUS_OK {
return true, "电检合格", recordTime, nil
} else {
return false, "电检不合格", recordTime, nil
}
var data = make(map[string]interface{})
ok, err := eolSession.Table("i_func_testdata").Where("条码 = ? and 测试完成日期时间 > ?", serialOrder.SerialOrderId, repairTime).OrderBy("测试完成日期时间 desc").Get(&data)
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
if !ok {
return false, "未获取到有效电检数据", recordT, nil
}
result, exist1 := data["测试结果(P/F)"]
checkTimeI, exist2 := data["测试完成日期时间"]
if !exist2 || !exist1 {
return false, "未获取到有效电检数据", recordT, nil
}
checkTime, ok := checkTimeI.(time.Time)
if !ok {
return false, "未获取到有效电检数据", recordT, nil
}
if result == "PASS" {
return true, "电检合格", checkTime, nil
} else {
brLi, err := rDao.Select([]grmi.Predicate{eolMeta.EOLTESTR1_BARCODE.NewPredicate(grmi.Equal, serialOrder.SerialOrderId),
eolMeta.EOLTESTR1_DATE.NewPredicate(grmi.GreaterOrEqual, repairTime)}, []grmi.Field{eolMeta.EOLTESTR1_DATE})
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
if len(brLi) == 0 {
return false, "未获取到有效电检数据", recordT, nil
}
lastBr := brLi[len(brLi)-1]
if lastBr.TOTALRESULT == model.EOL_STATUS_OK {
return true, "电检合格", lastBr.DATE.Restore(), nil
} else {
return false, "电检不合格", lastBr.DATE.Restore(), nil
}
return false, "电检不合格", recordT, nil
}
} else {
eolEngine := db.Eloquent.Slaves()[0]
@ -440,28 +400,68 @@ func (impl *SerialOrderServiceImplement) ExtractSBR(session *xorm.Session, user
}
eolEngine := db.Eloquent.Slaves()[2]
eolSession := eolEngine.NewSession()
var data = make(map[string]interface{})
ok, err := eolSession.Table("i_func_testdata").Where("条码 = ? and 测试完成日期时间 > ?", serialOrder.SerialOrderId, repairTime).OrderBy("测试完成日期时间 desc").Get(&data)
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询SBR数据失败, 错误:" + err.Error())
}
if !ok {
return false, "未获取到有效SBR数据", recordT, nil
}
result, exist1 := data["测试结果(P/F)"]
checkTimeI, exist2 := data["测试完成日期时间"]
if !exist2 || !exist1 {
return false, "未获取到有效SBR数据", recordT, nil
}
checkTime, ok := checkTimeI.(time.Time)
if !ok {
return false, "未获取到有效SBR数据", recordT, nil
}
if result == "PASS" {
return true, "SBR合格", checkTime, nil
f1Dao := eolDal.NewEOLTESTF1DAO(eolSession, user.UserId)
//f2Dao := eolDal.NewEOLTESTF2DAO(eolSession, user.UserId)
rDao := eolDal.NewEOLTESTR1DAO(eolSession, user.UserId)
if product.CtrlStr1 == meModel.PRODUCT_TYPE_MS || product.CtrlStr1 == meModel.PRODUCT_TYPE_PS {
drLi, err := f1Dao.Select([]grmi.Predicate{eolMeta.EOLTESTF1_BARCODE.NewPredicate(grmi.Equal, serialOrder.SerialOrderId),
eolMeta.EOLTESTF1_DATE.NewPredicate(grmi.GreaterOrEqual, repairTime)}, []grmi.Field{eolMeta.EOLTESTF1_DATE})
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询SBR数据失败, 错误:" + err.Error())
}
//paLi, err := f2Dao.Select([]grmi.Predicate{eolMeta.EOLTESTF2_BARCODE.NewPredicate(grmi.Equal, serialOrder.SerialOrderId),
// eolMeta.EOLTESTF2_DATA.NewPredicate(grmi.GreaterOrEqual, repairTime)}, []grmi.Field{eolMeta.EOLTESTF2_DATA})
//if err != nil {
// return false, "", recordT, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
//}
var lastDr *eolModel.EOLTESTF1
//var lastPa *eolModel.EOLTESTF2
if len(drLi) == 0 {
return false, "未获取到有效SBR数据", recordT, nil
}
lastDr = &drLi[len(drLi)-1]
//if len(paLi) > 0 {
// lastPa = &paLi[len(paLi)-1]
//}
var totalResult string = lastDr.TOTALRESULT
var recordTime time.Time = lastDr.DATE.Restore()
//if lastDr == nil && lastPa == nil {
// return false, "未获取到有效电检数据", recordT, nil
//} else if lastDr != nil && lastPa != nil {
// if lastDr.DATE.Restore().After(lastPa.DATA.Restore()) {
// totalResult = lastDr.TOTALRESULT
// recordTime = lastDr.DATE.Restore()
// } else {
// totalResult = lastPa.TOTALRESULT
// recordTime = lastPa.DATA.Restore()
// }
//} else if lastDr != nil && lastPa == nil {
// totalResult = lastDr.TOTALRESULT
// recordTime = lastDr.DATE.Restore()
//} else if lastDr == nil && lastPa != nil {
// totalResult = lastPa.TOTALRESULT
// recordTime = lastPa.DATA.Restore()
//}
if totalResult == model.EOL_STATUS_OK {
return true, "SBR合格", recordTime, nil
} else {
return false, "SBR不合格", recordTime, nil
}
} else {
return false, "SBR不合格", recordT, nil
brLi, err := rDao.Select([]grmi.Predicate{eolMeta.EOLTESTR1_BARCODE.NewPredicate(grmi.Equal, serialOrder.SerialOrderId),
eolMeta.EOLTESTR1_DATE.NewPredicate(grmi.GreaterOrEqual, repairTime)}, []grmi.Field{eolMeta.EOLTESTR1_DATE})
if err != nil {
return false, "", recordT, grmi.NewBusinessError("查询SBR数据失败, 错误:" + err.Error())
}
if len(brLi) == 0 {
return false, "未获取到有效SBR数据", recordT, nil
}
lastBr := brLi[len(brLi)-1]
if lastBr.TOTALRESULT == model.EOL_STATUS_OK {
return true, "SBR合格", lastBr.DATE.Restore(), nil
} else {
return false, "SBR不合格", lastBr.DATE.Restore(), nil
}
}
}


Loading…
Cancel
Save