From fdb4554e13977737e86d2155da471b37989cacb0 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Mon, 23 Aug 2021 16:48:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B7=A5=E4=BD=8D=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=8A=A8=E4=BD=9C=E6=95=B0=E6=8D=AE=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/base/OPCMonitorBasicComInfo.model.go | 23 +-- models/base/OPCMonitorComRule.model.go | 35 ++-- .../base/OPCMonitorBasicComInfo.service.go | 40 ++++ .../OPCMonitorBasicComInfo.service.impl.go | 177 ++++++++++++++++++ .../base/OPCMonitorBasicComInfo.rest.go | 61 ++++++ web/controllers/base/base.go | 4 + 6 files changed, 312 insertions(+), 28 deletions(-) diff --git a/models/base/OPCMonitorBasicComInfo.model.go b/models/base/OPCMonitorBasicComInfo.model.go index c8c6a94..5131c47 100644 --- a/models/base/OPCMonitorBasicComInfo.model.go +++ b/models/base/OPCMonitorBasicComInfo.model.go @@ -20,17 +20,18 @@ import ( * ******************************************************************************/ type OPCMonitorBasicComInfo struct { - PlantNr int `xorm:"pk int 'PlantNr'" json:"OPCMonitorBasicComInfo-PlantNr"` - WorkPlaceNr int `xorm:"pk int 'WorkPlaceNr'" json:"OPCMonitorBasicComInfo-WorkPlaceNr"` - MonitorPalletInPlace int `xorm:"pk int 'MonitorPalletInPlace'" json:"OPCMonitorBasicComInfo-MonitorPalletInPlace"` - MonitorManualRelease int `xorm:"pk int 'MonitorManualRelease'" json:"OPCMonitorBasicComInfo-MonitorManualRelease"` - MonitorProblemPieceRelease int `xorm:"pk int 'MonitorProblemPieceRelease'" json:"OPCMonitorBasicComInfo-MonitorProblemPieceRelease"` - BrandName string `xorm:"nvarchar(40) 'BrandName' not null" json:"OPCMonitorBasicComInfo-BrandName"` - MachineType string `xorm:"nvarchar(40) 'MachineType' not null" json:"OPCMonitorBasicComInfo-MachineType"` - IpAddress string `xorm:"nvarchar(40) 'IpAddress' not null" json:"OPCMonitorBasicComInfo-IpAddress"` - LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"OPCMonitorBasicComInfo-LastModify"` - LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"OPCMonitorBasicComInfo-LastUser"` - CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"OPCMonitorBasicComInfo-CreateTime"` + PlantNr int `xorm:"pk int 'PlantNr'" json:"OPCMonitorBasicComInfo-PlantNr"` + WorkPlaceNr int `xorm:"pk int 'WorkPlaceNr'" json:"OPCMonitorBasicComInfo-WorkPlaceNr"` + MonitorPalletInPlace int `xorm:"pk int 'MonitorPalletInPlace'" json:"OPCMonitorBasicComInfo-MonitorPalletInPlace"` + MonitorManualRelease int `xorm:"pk int 'MonitorManualRelease'" json:"OPCMonitorBasicComInfo-MonitorManualRelease"` + MonitorProblemPieceRelease int `xorm:"pk int 'MonitorProblemPieceRelease'" json:"OPCMonitorBasicComInfo-MonitorProblemPieceRelease"` + BrandName string `xorm:"nvarchar(40) 'BrandName' not null" json:"OPCMonitorBasicComInfo-BrandName"` + MachineType string `xorm:"nvarchar(40) 'MachineType' not null" json:"OPCMonitorBasicComInfo-MachineType"` + IpAddress string `xorm:"nvarchar(40) 'IpAddress' not null" json:"OPCMonitorBasicComInfo-IpAddress"` + LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"OPCMonitorBasicComInfo-LastModify"` + LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"OPCMonitorBasicComInfo-LastUser"` + CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"OPCMonitorBasicComInfo-CreateTime"` + OPCMonitorComRuleLi []OPCMonitorComRule `xorm:"-" json:"OPCMonitorBasicComInfo-OPCMonitorComRuleLi"` } /****************************************************************************** diff --git a/models/base/OPCMonitorComRule.model.go b/models/base/OPCMonitorComRule.model.go index db5f3bd..eabeb90 100644 --- a/models/base/OPCMonitorComRule.model.go +++ b/models/base/OPCMonitorComRule.model.go @@ -20,23 +20,24 @@ import ( * ******************************************************************************/ type OPCMonitorComRule struct { - PlantNr int `xorm:"pk int 'PlantNr'" json:"OPCMonitorComRule-PlantNr"` - WorkPlaceNr int `xorm:"pk int 'WorkPlaceNr'" json:"OPCMonitorComRule-WorkPlaceNr"` - MonitorPalletInPlace int `xorm:"pk int 'MonitorPalletInPlace'" json:"OPCMonitorComRule-MonitorPalletInPlace"` - MonitorManualRelease int `xorm:"pk int 'MonitorManualRelease'" json:"OPCMonitorComRule-MonitorManualRelease"` - MonitorProblemPieceRelease int `xorm:"pk int 'MonitorProblemPieceRelease'" json:"OPCMonitorComRule-MonitorProblemPieceRelease"` - RuleId int `xorm:"pk int 'RuleId'" json:"OPCMonitorComRule-RuleId"` - ActionType string `xorm:"nvarchar(20) 'ActionType' not null" json:"OPCMonitorComRule-ActionType"` - DBlockAddress string `xorm:"nvarchar(40) 'DBlockAddress' not null" json:"OPCMonitorComRule-DBlockAddress"` - DBlockValueType string `xorm:"nvarchar(40) 'DBlockValueType' not null" json:"OPCMonitorComRule-DBlockValueType"` - Formula string `xorm:"nvarchar(40) 'Formula' not null" json:"OPCMonitorComRule-Formula"` - OperatorSimbol string `xorm:"nvarchar(40) 'OperatorSimbol' not null" json:"OPCMonitorComRule-OperatorSimbol"` - DBlockValue string `xorm:"nvarchar(100) 'DBlockValue' not null" json:"OPCMonitorComRule-DBlockValue"` - OKGotoRuleId int `xorm:"int 'OKGotoRuleId' not null" json:"OPCMonitorComRule-OKGotoRuleId"` - NOKGotoRuleId int `xorm:"int 'NOKGotoRuleId' not null" json:"OPCMonitorComRule-NOKGotoRuleId"` - LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"OPCMonitorComRule-LastModify"` - LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"OPCMonitorComRule-LastUser"` - CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"OPCMonitorComRule-CreateTime"` + PlantNr int `xorm:"pk int 'PlantNr'" json:"OPCMonitorComRule-PlantNr"` + WorkPlaceNr int `xorm:"pk int 'WorkPlaceNr'" json:"OPCMonitorComRule-WorkPlaceNr"` + MonitorPalletInPlace int `xorm:"pk int 'MonitorPalletInPlace'" json:"OPCMonitorComRule-MonitorPalletInPlace"` + MonitorManualRelease int `xorm:"pk int 'MonitorManualRelease'" json:"OPCMonitorComRule-MonitorManualRelease"` + MonitorProblemPieceRelease int `xorm:"pk int 'MonitorProblemPieceRelease'" json:"OPCMonitorComRule-MonitorProblemPieceRelease"` + RuleId int `xorm:"pk int 'RuleId'" json:"OPCMonitorComRule-RuleId"` + ActionType string `xorm:"nvarchar(20) 'ActionType' not null" json:"OPCMonitorComRule-ActionType"` + DBlockAddress string `xorm:"nvarchar(40) 'DBlockAddress' not null" json:"OPCMonitorComRule-DBlockAddress"` + DBlockValueType string `xorm:"nvarchar(40) 'DBlockValueType' not null" json:"OPCMonitorComRule-DBlockValueType"` + Formula string `xorm:"nvarchar(40) 'Formula' not null" json:"OPCMonitorComRule-Formula"` + OperatorSimbol string `xorm:"nvarchar(40) 'OperatorSimbol' not null" json:"OPCMonitorComRule-OperatorSimbol"` + DBlockValue string `xorm:"nvarchar(100) 'DBlockValue' not null" json:"OPCMonitorComRule-DBlockValue"` + OKGotoRuleId int `xorm:"int 'OKGotoRuleId' not null" json:"OPCMonitorComRule-OKGotoRuleId"` + NOKGotoRuleId int `xorm:"int 'NOKGotoRuleId' not null" json:"OPCMonitorComRule-NOKGotoRuleId"` + LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"OPCMonitorComRule-LastModify"` + LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"OPCMonitorComRule-LastUser"` + CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"OPCMonitorComRule-CreateTime"` + OPCMonitorComDetailRuleLi []OPCMonitorComDetailRule `xorm:"-" json:"OPCMonitorComRule-OPCMonitorComDetailRuleLi"` } /****************************************************************************** diff --git a/services/base/OPCMonitorBasicComInfo.service.go b/services/base/OPCMonitorBasicComInfo.service.go index 74d71bc..33c45f2 100644 --- a/services/base/OPCMonitorBasicComInfo.service.go +++ b/services/base/OPCMonitorBasicComInfo.service.go @@ -185,6 +185,46 @@ type OPCMonitorBasicComInfoService interface { * ******************************************************************************/ Update(*models.Usertab, *[]model.OPCMonitorBasicComInfo) error + /****************************************************************************** + * + * @Function Name : Save + *----------------------------------------------------------------------------- + * + * @Description : 保存一条OPCMonitorBasicComInfo + * + * @Function Parameters : 当前访问人员信息 + * + * @Function Parameters : 需要插入的OPCMonitorBasicComInfo + * + * @Return Value : 执行时发生的错误 + * + * @Author : 代码生成器创建 + * + * @Date : 2021-08-23 zhangxin + * + ******************************************************************************/ + Save(*models.Usertab, *model.OPCMonitorBasicComInfo) error + /****************************************************************************** + * + * @Function Name : 查询规则 + *----------------------------------------------------------------------------- + * + * @Description : 查询OPCMonitorBasicComInfo + * + * @Function Parameters : 当前访问人员信息 + * + * @Function Parameters : 查询参数 + * + * @Return Value : 查询结果 + * + * @Return Value : 执行时发生的错误 + * + * @Author : zhangxin + * + * @Date : 2021-08-23 + * + ******************************************************************************/ + GetRule(*models.Usertab, map[string]string) (interface{}, error) } /****************************************************************************** diff --git a/services/base/implments/OPCMonitorBasicComInfo.service.impl.go b/services/base/implments/OPCMonitorBasicComInfo.service.impl.go index 270dc79..46aa09d 100644 --- a/services/base/implments/OPCMonitorBasicComInfo.service.impl.go +++ b/services/base/implments/OPCMonitorBasicComInfo.service.impl.go @@ -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 +} diff --git a/web/controllers/base/OPCMonitorBasicComInfo.rest.go b/web/controllers/base/OPCMonitorBasicComInfo.rest.go index 1209856..55ecfd1 100644 --- a/web/controllers/base/OPCMonitorBasicComInfo.rest.go +++ b/web/controllers/base/OPCMonitorBasicComInfo.rest.go @@ -400,3 +400,64 @@ func RegisterUpdateOPCMonitorBasicComInfo(party router.Party, path string, metho RegisterMultiOPCMonitorBasicComInfo(party, "PUT", path, method) } + + +/****************************************************************************** + * + * @Function Name : RegisterSaveOPCMonitorBasicComInfo + *----------------------------------------------------------------------------- + * + * @Description : 为一个插入单条OPCMonitorBasicComInfo的方法注册路由 + * + * @Function Parameters : 路由分组 + * + * @Function Parameters : 路径 + * + * @Function Parameters : 实际处理请求的方法 + * + * @Author : zhangxin + * + * @Date : 2021-08-23 + * + ******************************************************************************/ +func RegisterSaveOPCMonitorBasicComInfo(party router.Party, path string, method func(*models.Usertab, *model.OPCMonitorBasicComInfo) error) { + + RegisterOneOPCMonitorBasicComInfo(party, "POST", path, method) +} + + +/****************************************************************************** + * + * @Function Name : RegisterGetRuleOPCMonitorBasicComInfo + *----------------------------------------------------------------------------- + * + * @Description : 为一个查询OPCMonitorBasicComInfo的方法注册路由 + * + * @Function Parameters : 路由分组 + * + * @Function Parameters : 路径 + * + * @Function Parameters : 实际处理请求的方法 + * + * @Author : zhangxin + * + * @Date : 2021-08-23 + * + ******************************************************************************/ +func RegisterGetRuleOPCMonitorBasicComInfo(party router.Party, path string, method func(*models.Usertab, map[string]string) (interface{}, error)) { + + party.Get(path, func(ctx iris.Context) { + user, ok := jwts.ParseToken(ctx) + if !ok { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + + result, err := method(user, ctx.URLParams()) + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + supports.Ok(ctx, supports.OptionSuccess, result) + }) +} \ No newline at end of file diff --git a/web/controllers/base/base.go b/web/controllers/base/base.go index 216334b..acd90f7 100644 --- a/web/controllers/base/base.go +++ b/web/controllers/base/base.go @@ -1515,6 +1515,10 @@ func RegisterRoutes() { // RegisterUpdateOneOPCMonitorBasicComInfo(opcmonitorbasiccominfo, "/updateone", serviceOfOPCMonitorBasicComInfo.UpdateOne) // OPCMonitorBasicComInfo修改多条 // RegisterUpdateOPCMonitorBasicComInfo(opcmonitorbasiccominfo, "/update", serviceOfOPCMonitorBasicComInfo.Update) + // OPCMonitorBasicComInfo保存一条 + RegisterSaveOPCMonitorBasicComInfo(opcmonitorbasiccominfo, "/save", serviceOfOPCMonitorBasicComInfo.Save) + // OPCMonitorBasicComInfo查询规则 + RegisterGetRuleOPCMonitorBasicComInfo(opcmonitorbasiccominfo, "/getrule", serviceOfOPCMonitorBasicComInfo.GetRule) // OPCMonitorComDetailRule的路由组 opcmonitorcomdetailrule := party.Party("/opcmonitorcomdetailrule")