|
|
@ -264,17 +264,57 @@ func (impl *OPCMonitorBasicComInfoServiceImplement) Select(user *models.Usertab, |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
dao := dal.NewOPCMonitorBasicComInfoDAO(session, user.Pid, user.Userid) |
|
|
|
ruleDao := dal.NewOPCMonitorComRuleDAO(session, user.Pid, user.Userid) |
|
|
|
detailDao := dal.NewOPCMonitorComDetailRuleDAO(session, user.Pid, user.Userid) |
|
|
|
if condition.Fill(urlParameters) { |
|
|
|
result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
li := result.Records.([]model.OPCMonitorBasicComInfo) |
|
|
|
for index, opc := range li { |
|
|
|
ruleLi, err := ruleDao.Select([]grmi.Predicate{meta.OPCMonitorComRule_WorkPlaceNr.NewPredicate(grmi.Equal, opc.WorkPlaceNr)}, []grmi.Field{meta.OPCMonitorComRule_RuleId}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
for index, rule := range ruleLi { |
|
|
|
if rule.DBlockValueType == model.DBlockValueType_VALUE_MAP { |
|
|
|
detailLi, err := detailDao.Select([]grmi.Predicate{meta.OPCMonitorComDetailRule_WorkPlaceNr.NewPredicate(grmi.Equal, opc.WorkPlaceNr), meta.OPCMonitorComDetailRule_RuleId.NewPredicate(grmi.Equal, rule.RuleId)}, []grmi.Field{meta.OPCMonitorComDetailRule_DetailId}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
rule.OPCMonitorComDetailRuleLi = detailLi |
|
|
|
ruleLi[index] = rule |
|
|
|
} |
|
|
|
} |
|
|
|
opc.OPCMonitorComRuleLi = ruleLi |
|
|
|
li[index] = opc |
|
|
|
} |
|
|
|
result.Records = li |
|
|
|
return result, nil |
|
|
|
} else { |
|
|
|
result, err := dao.Select(predicates, condition.OrderByFields) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
for index, opc := range result { |
|
|
|
ruleLi, err := ruleDao.Select([]grmi.Predicate{meta.OPCMonitorComRule_WorkPlaceNr.NewPredicate(grmi.Equal, opc.WorkPlaceNr)}, []grmi.Field{meta.OPCMonitorComRule_RuleId}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
for index, rule := range ruleLi { |
|
|
|
if rule.DBlockValueType == model.DBlockValueType_VALUE_MAP { |
|
|
|
detailLi, err := detailDao.Select([]grmi.Predicate{meta.OPCMonitorComDetailRule_WorkPlaceNr.NewPredicate(grmi.Equal, opc.WorkPlaceNr), meta.OPCMonitorComDetailRule_RuleId.NewPredicate(grmi.Equal, rule.RuleId)}, []grmi.Field{meta.OPCMonitorComDetailRule_DetailId}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
rule.OPCMonitorComDetailRuleLi = detailLi |
|
|
|
ruleLi[index] = rule |
|
|
|
} |
|
|
|
} |
|
|
|
opc.OPCMonitorComRuleLi = ruleLi |
|
|
|
result[index] = opc |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
} |
|
|
@ -309,3 +349,140 @@ func (impl *OPCMonitorBasicComInfoServiceImplement) Update(user *models.Usertab, |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
|
* |
|
|
|
* @Reference LAPP_LF_MOM_BACKEND/services/base/OPCMonitorBasicComInfoService.InsertOne |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *OPCMonitorBasicComInfoServiceImplement) Save(user *models.Usertab, entity *model.OPCMonitorBasicComInfo) error { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/base/implments/OPCMonitorBasicComInfo.service.impl.go", "InsertOneOPCMonitorBasicComInfo", "插入一个OPCMonitorBasicComInfo") |
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
if err := session.Begin(); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
dao := dal.NewOPCMonitorBasicComInfoDAO(session, user.Pid, user.Userid) |
|
|
|
workPlaceDao := dal.NewWorkPlaceDAO(session, user.Pid, user.Userid) |
|
|
|
ruleDao := dal.NewOPCMonitorComRuleDAO(session, user.Pid, user.Userid) |
|
|
|
detailDao := dal.NewOPCMonitorComDetailRuleDAO(session, user.Pid, user.Userid) |
|
|
|
workPlace, err := workPlaceDao.SelectOne(entity.WorkPlaceNr) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
if workPlace == nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return grmi.NewBusinessError("不存在对应的工位") |
|
|
|
} |
|
|
|
ruleLi := entity.OPCMonitorComRuleLi |
|
|
|
for index, rule := range ruleLi { |
|
|
|
rule.WorkPlaceNr = entity.WorkPlaceNr |
|
|
|
rule.MonitorManualRelease = entity.MonitorManualRelease |
|
|
|
rule.MonitorProblemPieceRelease = entity.MonitorProblemPieceRelease |
|
|
|
rule.MonitorPalletInPlace = entity.MonitorPalletInPlace |
|
|
|
for detailIndex, detail := range rule.OPCMonitorComDetailRuleLi { |
|
|
|
detail.RuleId = rule.RuleId |
|
|
|
detail.WorkPlaceNr = rule.WorkPlaceNr |
|
|
|
rule.WorkPlaceNr = entity.WorkPlaceNr |
|
|
|
detail.MonitorManualRelease = rule.MonitorManualRelease |
|
|
|
detail.MonitorProblemPieceRelease = rule.MonitorProblemPieceRelease |
|
|
|
detail.MonitorPalletInPlace = rule.MonitorPalletInPlace |
|
|
|
rule.OPCMonitorComDetailRuleLi[detailIndex] = detail |
|
|
|
} |
|
|
|
ruleLi[index] = rule |
|
|
|
} |
|
|
|
err = dao.DeleteWhere([]grmi.Predicate{meta.OPCMonitorBasicComInfo_WorkPlaceNr.NewPredicate(grmi.Equal, entity.WorkPlaceNr)}) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = ruleDao.DeleteWhere([]grmi.Predicate{meta.OPCMonitorComRule_WorkPlaceNr.NewPredicate(grmi.Equal, entity.WorkPlaceNr)}) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = detailDao.DeleteWhere([]grmi.Predicate{meta.OPCMonitorComDetailRule_WorkPlaceNr.NewPredicate(grmi.Equal, entity.WorkPlaceNr)}) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = dao.InsertOne(entity) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = ruleDao.Insert(&ruleLi) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
for _, rule := range ruleLi { |
|
|
|
if len(rule.OPCMonitorComDetailRuleLi) > 0 { |
|
|
|
err = detailDao.Insert(&rule.OPCMonitorComDetailRuleLi) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
_ = session.Commit() |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
|
* |
|
|
|
* @Reference LAPP_LF_MOM_BACKEND/services/base/OPCMonitorBasicComInfoService.GetRule |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *OPCMonitorBasicComInfoServiceImplement) GetRule(user *models.Usertab, urlParameters map[string]string) (interface{}, error) { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/base/implments/OPCMonitorBasicComInfo.service.impl.go", "SelectOPCMonitorBasicComInfo", "GetRule") |
|
|
|
|
|
|
|
condition := DefaultConditionOfOPCMonitorBasicComInfoAndPaging |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
predicates, err := condition.BuildPredicates(urlParameters) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
dao := dal.NewOPCMonitorBasicComInfoDAO(session, user.Pid, user.Userid) |
|
|
|
ruleDao := dal.NewOPCMonitorComRuleDAO(session, user.Pid, user.Userid) |
|
|
|
detailDao := dal.NewOPCMonitorComDetailRuleDAO(session, user.Pid, user.Userid) |
|
|
|
result, err := dao.Select(predicates, condition.OrderByFields) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
if len(result) > 1 { |
|
|
|
return nil, grmi.NewBusinessError("规则数据过多") |
|
|
|
} else if len(result) == 0 { |
|
|
|
return nil, nil |
|
|
|
} |
|
|
|
for index, opc := range result { |
|
|
|
ruleLi, err := ruleDao.Select([]grmi.Predicate{meta.OPCMonitorComRule_WorkPlaceNr.NewPredicate(grmi.Equal, opc.WorkPlaceNr)}, []grmi.Field{meta.OPCMonitorComRule_RuleId}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
for index, rule := range ruleLi { |
|
|
|
if rule.DBlockValueType == model.DBlockValueType_VALUE_MAP { |
|
|
|
detailLi, err := detailDao.Select([]grmi.Predicate{meta.OPCMonitorComDetailRule_WorkPlaceNr.NewPredicate(grmi.Equal, opc.WorkPlaceNr), meta.OPCMonitorComDetailRule_RuleId.NewPredicate(grmi.Equal, rule.RuleId)}, []grmi.Field{meta.OPCMonitorComDetailRule_DetailId}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
rule.OPCMonitorComDetailRuleLi = detailLi |
|
|
|
|
|
|
|
} else { |
|
|
|
rule.OPCMonitorComDetailRuleLi = make([]model.OPCMonitorComDetailRule, 0) |
|
|
|
} |
|
|
|
ruleLi[index] = rule |
|
|
|
} |
|
|
|
opc.OPCMonitorComRuleLi = ruleLi |
|
|
|
result[index] = opc |
|
|
|
} |
|
|
|
|
|
|
|
return result[0], nil |
|
|
|
} |