Browse Source

新增工位监控动作数据维护的功能接口

pull/93/head
zhangxin 3 years ago
parent
commit
fdb4554e13
6 changed files with 312 additions and 28 deletions
  1. +12
    -11
      models/base/OPCMonitorBasicComInfo.model.go
  2. +18
    -17
      models/base/OPCMonitorComRule.model.go
  3. +40
    -0
      services/base/OPCMonitorBasicComInfo.service.go
  4. +177
    -0
      services/base/implments/OPCMonitorBasicComInfo.service.impl.go
  5. +61
    -0
      web/controllers/base/OPCMonitorBasicComInfo.rest.go
  6. +4
    -0
      web/controllers/base/base.go

+ 12
- 11
models/base/OPCMonitorBasicComInfo.model.go View File

@ -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"`
}
/******************************************************************************


+ 18
- 17
models/base/OPCMonitorComRule.model.go View File

@ -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"`
}
/******************************************************************************


+ 40
- 0
services/base/OPCMonitorBasicComInfo.service.go View File

@ -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)
}
/******************************************************************************


+ 177
- 0
services/base/implments/OPCMonitorBasicComInfo.service.impl.go View File

@ -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
}

+ 61
- 0
web/controllers/base/OPCMonitorBasicComInfo.rest.go View File

@ -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)
})
}

+ 4
- 0
web/controllers/base/base.go View File

@ -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")


Loading…
Cancel
Save