Browse Source

Merge pull request 'operation增加字段workLineId并进行相应处理,opc和开放协议添加保存接口' (#84) from feature_om into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_LF_MOM_BACKEND/pulls/84
Reviewed-by: 徐腾飞 <tengfei.xue@le-it.com.cn>
feature_xml
徐腾飞 3 years ago
parent
commit
0ed4c90189
12 changed files with 295 additions and 6 deletions
  1. +3
    -4
      dao/base/implments/Operation.dao.impl.go
  2. +3
    -1
      meta/base/Operation.meta.go
  3. +1
    -0
      models/base/Operation.model.go
  4. +19
    -0
      services/base/OPCBasicComInfo.service.go
  5. +19
    -0
      services/base/TightenWrenchInfo.service.go
  6. +110
    -0
      services/base/implments/OPCBasicComInfo.service.impl.go
  7. +1
    -0
      services/base/implments/Operation.service.impl.go
  8. +3
    -0
      services/base/implments/ScanRuleInfo.service.impl.go
  9. +85
    -1
      services/base/implments/TightenWrenchInfo.service.impl.go
  10. +24
    -0
      web/controllers/base/OPCBasicComInfo.rest.go
  11. +23
    -0
      web/controllers/base/TightenWrenchInfo.rest.go
  12. +4
    -0
      web/controllers/base/base.go

+ 3
- 4
dao/base/implments/Operation.dao.impl.go View File

@ -307,11 +307,10 @@ func (impl *OperationDAOImplement) UpdateWhere(predicates []grmi.Predicate, enti
*
******************************************************************************/
func (impl *OperationDAOImplement) GetOperationRelData(artIdLi []string, workLineId string) ([]model.OperationRelData, error) {
where := fmt.Sprintf("%s = ? and %s = ? and %s = ?", meta.Operation_PlantNr.ColumnName, meta.Process_WorkLineId.ColumnName, meta.Operation_ActivateInStation.ColumnName)
where := fmt.Sprintf("%s = ? and %s = ? and %s = ? and %s = ?", meta.Operation_PlantNr.ColumnName, meta.Operation_WorkLineId.ColumnName, meta.Process_WorkLineId.ColumnName, meta.Operation_ActivateInStation.ColumnName)
data := make([]model.OperationRelData, 0)
POCondition := fmt.Sprintf("%s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.Process_PlantNr.ColumnName, meta.Operation_PO.ColumnName, meta.Process_PO.ColumnName)
artCondition := fmt.Sprintf("%s = %s and %s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.ArticleAtcodLst_PlantNr.ColumnName, meta.Operation_AttrCode.ColumnName, meta.ArticleAtcodLst_AttrCode.ColumnName, meta.Operation_AttrValue.ColumnName, meta.ArticleAtcodLst_AttrValue.ColumnName)
//stepCondition := fmt.Sprintf("%s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.StepType_PlantNr.ColumnName, meta.Operation_StepType.ColumnName, meta.StepType_StepTypeName.ColumnName)
session := impl.session.Table(impl.meta.TableName).Join("LEFT", meta.Process.TableName, POCondition).Join("LEFT", meta.ArticleAtcodLst.TableName, artCondition)
artIdStr := ""
for index, artId := range artIdLi {
@ -322,6 +321,6 @@ func (impl *OperationDAOImplement) GetOperationRelData(artIdLi []string, workLin
}
where += fmt.Sprintf(" and ( %s in (%s) or %s = ?) ", meta.ArticleAtcodLst_ArtId.ColumnName, artIdStr, meta.Operation_AttrCode.ColumnName)
//err := session.Where(where, impl.plantNr, workLineId, 1).In(meta.ArticleAtcodLst_ArtId.ColumnName, artIdLi).OrderBy(meta.Process_PO.ColumnName).OrderBy(meta.Operation_StepNo.ColumnName).Find(&data)
err := session.Where(where, impl.plantNr, workLineId, 1, -1).OrderBy(meta.Process_PO.ColumnName).OrderBy(meta.Operation_StepNo.ColumnName).Find(&data)
err := session.Where(where, impl.plantNr, workLineId, workLineId, 1, -1).OrderBy(meta.Process_PO.ColumnName).OrderBy(meta.Operation_StepNo.ColumnName).Find(&data)
return data, err
}
}

+ 3
- 1
meta/base/Operation.meta.go View File

@ -22,6 +22,7 @@ var Operation_PO = grmi.NewField("PO", "Operation.PO", "po", grmi.TypeInt)
var Operation_StepNo = grmi.NewField("StepNo", "Operation.StepNo", "stepno", grmi.TypeInt)
var Operation_StepDesc = grmi.NewField("StepDesc", "Operation.StepDesc", "stepdesc", grmi.TypeString)
var Operation_ProjectId = grmi.NewField("ProjectId", "Operation.ProjectId", "projectid", grmi.TypeString)
var Operation_WorkLineId = grmi.NewField("WorkLineId", "Operation.WorkLineId", "worklineid", grmi.TypeString)
var Operation_ActivateInStation = grmi.NewField("ActivateInStation", "Operation.ActivateInStation", "activateinstation", grmi.TypeBool)
var Operation_ActivateWhenRepair = grmi.NewField("ActivateWhenRepair", "Operation.ActivateWhenRepair", "activatewhenrepair", grmi.TypeBool)
var Operation_AttrCode = grmi.NewField("AttrCode", "Operation.AttrCode", "attrcode", grmi.TypeInt)
@ -56,6 +57,7 @@ var Operation = grmi.NewEntity(
Operation_StepNo.Name: Operation_StepNo,
Operation_StepDesc.Name: Operation_StepDesc,
Operation_ProjectId.Name: Operation_ProjectId,
Operation_WorkLineId.Name: Operation_StepNo,
Operation_ActivateInStation.Name: Operation_ActivateInStation,
Operation_ActivateWhenRepair.Name: Operation_ActivateWhenRepair,
Operation_AttrCode.Name: Operation_AttrCode,
@ -72,4 +74,4 @@ var Operation = grmi.NewEntity(
Operation_CreateTime.Name: Operation_CreateTime,
},
[]string{"PlantNr"},
[]string{"PO", "StepNo", "StepDesc", "ProjectId", "ActivateInStation", "ActivateWhenRepair", "AttrCode", "AttrValue", "StepType", "OPCtrlPara1", "OPCtrlPara2", "OPCtrlPara3", "OPCtrlPara4", "OPCtrlPara5", "OPCtrlPara6", "LastUser"})
[]string{"PO", "StepNo", "StepDesc", "ProjectId", "WorkLineId", "ActivateInStation", "ActivateWhenRepair", "AttrCode", "AttrValue", "StepType", "OPCtrlPara1", "OPCtrlPara2", "OPCtrlPara3", "OPCtrlPara4", "OPCtrlPara5", "OPCtrlPara6", "LastUser"})

+ 1
- 0
models/base/Operation.model.go View File

@ -26,6 +26,7 @@ type Operation struct {
StepNo int `xorm:"int 'StepNo' not null" json:"Operation-StepNo"`
StepDesc string `xorm:"nvarchar(200) 'StepDesc' not null" json:"Operation-StepDesc"`
ProjectId string `xorm:"nvarchar(40) 'ProjectId' not null" json:"Operation-ProjectId"`
WorkLineId string `xorm:"nvarchar(40) 'WorkLineId' not null" json:"Operation-WorkLineId"`
ActivateInStation bool `xorm:"bit 'ActivateInStation' not null" json:"Operation-ActivateInStation"`
ActivateWhenRepair bool `xorm:"bit 'ActivateWhenRepair' not null" json:"Operation-ActivateWhenRepair"`
AttrCode int `xorm:"int 'AttrCode' not null" json:"Operation-AttrCode"`


+ 19
- 0
services/base/OPCBasicComInfo.service.go View File

@ -177,6 +177,25 @@ type OPCBasicComInfoService interface {
*
******************************************************************************/
Update(*models.Usertab, *[]model.OPCBasicComInfo) error
/******************************************************************************
*
* @Function Name : Save
*-----------------------------------------------------------------------------
*
* @Description : 保存一条OPCBasicComInfo
*
* @Function Parameters : 当前访问人员信息
*
* @Function Parameters : 需要修改的OPCBasicComInfo
*
* @Return Value : 执行时发生的错误
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-18
*
******************************************************************************/
Save(*models.Usertab, *model.OPCBasicComInfo) error
}
/******************************************************************************


+ 19
- 0
services/base/TightenWrenchInfo.service.go View File

@ -177,6 +177,25 @@ type TightenWrenchInfoService interface {
*
******************************************************************************/
Update(*models.Usertab, *[]model.TightenWrenchInfo) error
/******************************************************************************
*
* @Function Name : Save
*-----------------------------------------------------------------------------
*
* @Description : 保存TightenWrenchInfo
*
* @Function Parameters : 当前访问人员信息
*
* @Function Parameters : 需要修改的TightenWrenchInfo
*
* @Return Value : 执行时发生的错误
*
* @Author : zhangxin
*
* @Date : 2021-08-18
*
******************************************************************************/
Save(*models.Usertab, *model.TightenWrenchInfo) error
}
/******************************************************************************


+ 110
- 0
services/base/implments/OPCBasicComInfo.service.impl.go View File

@ -494,3 +494,113 @@ func (impl *OPCBasicComInfoServiceImplement) Update(user *models.Usertab, entiti
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/base/OPCBasicComInfoService.Delete
*
******************************************************************************/
func (impl *OPCBasicComInfoServiceImplement) Save(user *models.Usertab, entity *model.OPCBasicComInfo) error {
grmi.Log(user, "/services/base/implments/OPCBasicComInfo.service.impl.go", "Save", "保存OPC协议")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
if err := session.Begin(); err != nil {
return err
}
dao := dal.NewOPCBasicComInfoDAO(session, user.Pid, user.Userid)
ruleDao := dal.NewOPCComRuleDAO(session, user.Pid, user.Userid)
detailDao := dal.NewOPCComDetailRuleDAO(session, user.Pid, user.Userid)
operationDao := dal.NewOperationDAO(session, user.Pid, user.Userid)
workPlaceDao := dal.NewWorkPlaceDAO(session, user.Pid, user.Userid)
operation, err := operationDao.SelectOne(entity.OperationId)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("查询工艺数据失败, error:" + err.Error())
}
if operation == nil {
_ = session.Rollback()
return grmi.NewBusinessError("不存在对应的工艺")
}
workPlace, err := workPlaceDao.SelectOne(entity.WorkPlaceNr)
if err != nil {
_ = session.Rollback()
return err
}
if workPlace == nil {
_ = session.Rollback()
return grmi.NewBusinessError("不存在对应的工位")
}
if operation.PO != entity.PO || operation.StepNo != entity.StepNo || operation.StepDesc != entity.StepDesc || operation.ProjectId != entity.ProjectId {
_ = session.Rollback()
return grmi.NewBusinessError("工艺数据错误")
}
err = dao.DeleteWhere([]grmi.Predicate{meta.OPCBasicComInfo_OperationId.NewPredicate(grmi.Equal, entity.OperationId)})
if err != nil {
_ = session.Rollback()
return err
}
err = ruleDao.DeleteWhere([]grmi.Predicate{meta.OPCComRule_OperationId.NewPredicate(grmi.Equal, entity.OperationId)})
if err != nil {
_ = session.Rollback()
return err
}
err = detailDao.DeleteWhere([]grmi.Predicate{meta.OPCComDetailRule_OperationId.NewPredicate(grmi.Equal, entity.OperationId)})
if err != nil {
_ = session.Rollback()
return err
}
ruleLi := entity.OPCComRuleLi
if len(ruleLi) == 0 {
_ = session.Rollback()
return grmi.NewBusinessError("未获取到OPC通讯规则数据")
}
for index, rule := range ruleLi {
if rule.RuleId == 0 || rule.ActionType == "" {
_ = session.Rollback()
return grmi.NewBusinessError("OPC通讯规则数据不合规")
}
rule.PO = entity.PO
rule.StepNo = entity.StepNo
rule.StepDesc = entity.StepDesc
rule.OperationId = entity.OperationId
if rule.DBlockValueType == model.DBlockValueType_VALUE_MAP {
if len(rule.OPCComDetailRuleLi) == 0 {
_ = session.Rollback()
return grmi.NewBusinessError("未获取到OPC通讯详细规则")
}
for index, detail := range rule.OPCComDetailRuleLi {
if detail.DetailId == 0 || detail.BaseOnType == "" {
_ = session.Rollback()
return grmi.NewBusinessError("OPC通讯详细规则数据不合规")
}
detail.PO = rule.PO
detail.StepNo = rule.StepNo
detail.RuleId = rule.RuleId
detail.StepDesc = rule.StepDesc
detail.OperationId = rule.OperationId
rule.OPCComDetailRuleLi[index] = detail
}
err = detailDao.Insert(&rule.OPCComDetailRuleLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("插入详细规则数据失败, error:" + err.Error())
}
}
ruleLi[index] = rule
}
err = ruleDao.Insert(&ruleLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("插入通讯规则失败, error:" + err.Error())
}
err = dao.InsertOne(entity)
if err != nil {
_ = session.Rollback()
return err
}
_ = session.Commit()
return nil
}

+ 1
- 0
services/base/implments/Operation.service.impl.go View File

@ -27,6 +27,7 @@ var DefaultConditionOfOperation = grmi.NewCondition(
meta.Operation_StepNo.UrlParameterName: grmi.NewConditionItem(meta.Operation_StepNo, grmi.Equal, false),
meta.Operation_StepDesc.UrlParameterName: grmi.NewConditionItem(meta.Operation_StepDesc, grmi.Equal, false),
meta.Operation_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.Operation_ProjectId, grmi.Equal, false),
meta.Operation_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.Operation_WorkLineId, grmi.Equal, false),
meta.Operation_ActivateInStation.UrlParameterName: grmi.NewConditionItem(meta.Operation_ActivateInStation, grmi.Equal, false),
meta.Operation_ActivateWhenRepair.UrlParameterName: grmi.NewConditionItem(meta.Operation_ActivateWhenRepair, grmi.Equal, false),
meta.Operation_AttrCode.UrlParameterName: grmi.NewConditionItem(meta.Operation_AttrCode, grmi.Equal, false),


+ 3
- 0
services/base/implments/ScanRuleInfo.service.impl.go View File

@ -247,6 +247,9 @@ func (impl *ScanRuleInfoServiceImplement) Insert(user *models.Usertab, entities
item.StepNo = operation.StepNo
item.ProjectId = operation.ProjectId
item.StepDesc = operation.StepDesc
if item.RuleType == model.SCAN_RULE_TYPE_OTHER {
item.SRCtrlPara1 = model.SCAN_RULE_SERIALORDER
}
li[index] = item
}
if len(li) != 0 {


+ 85
- 1
services/base/implments/TightenWrenchInfo.service.impl.go View File

@ -131,7 +131,7 @@ func (impl *TightenWrenchInfoServiceImplement) InsertOne(user *models.Usertab, e
_ = session.Rollback()
return grmi.NewBusinessError("不存在对应的工位")
}
if operation.PO != entity.PO || operation.StepNo != entity.StepNo || operation.StepDesc != entity.StepDesc || operation.ProjectId != entity.ProjectId{
if operation.PO != entity.PO || operation.StepNo != entity.StepNo || operation.StepDesc != entity.StepDesc || operation.ProjectId != entity.ProjectId {
_ = session.Rollback()
return grmi.NewBusinessError("工艺数据错误")
}
@ -438,3 +438,87 @@ func (impl *TightenWrenchInfoServiceImplement) Update(user *models.Usertab, enti
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/base/TightenWrenchInfoService.Save
*
******************************************************************************/
func (impl *TightenWrenchInfoServiceImplement) Save(user *models.Usertab, entity *model.TightenWrenchInfo) error {
grmi.Log(user, "/services/base/implments/TightenWrenchInfo.service.impl.go", "UpdateOneTightenWrenchInfo", "修改一个TightenWrenchInfo")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
if err := session.Begin(); err != nil {
return err
}
dao := dal.NewTightenWrenchInfoDAO(session, user.Pid, user.Userid)
ruleDao := dal.NewTightenWrenchRuleInfoDAO(session, user.Pid, user.Userid)
opDao := dal.NewOperationDAO(session, user.Pid, user.Userid)
workPlaceDao := dal.NewWorkPlaceDAO(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("不存在对应的工位")
}
operation, err := opDao.SelectOne(entity.OperationId)
if err != nil {
_ = session.Rollback()
return err
}
if operation == nil {
_ = session.Rollback()
return grmi.NewBusinessError("不存在对应的工艺")
}
if operation.PO != entity.PO || operation.StepNo != entity.StepNo || operation.StepDesc != entity.StepDesc || operation.ProjectId != entity.ProjectId {
_ = session.Rollback()
return grmi.NewBusinessError("工艺数据错误")
}
err = dao.DeleteWhere([]grmi.Predicate{meta.TightenWrenchInfo_OperationId.NewPredicate(grmi.Equal, entity.OperationId)})
if err != nil {
_ = session.Rollback()
return err
}
err = ruleDao.DeleteWhere([]grmi.Predicate{meta.TightenWrenchRuleInfo_OperationId.NewPredicate(grmi.Equal, entity.OperationId)})
if err != nil {
_ = session.Rollback()
return err
}
ruleLi := entity.TightenWrenchRuleInfoLi
if len(ruleLi) == 0 {
_ = session.Rollback()
return grmi.NewBusinessError("未获取到开发协议详细规则")
}
for index, rule := range ruleLi {
if rule.MainControlAction != model.CONTROL_ACTION_PSET && rule.MainControlAction != model.CONTROL_ACTION_JOB {
if rule.ControlId != 1 || rule.ControlTime != 1 {
_ = session.Rollback()
return grmi.NewBusinessError("规则明细数据不合规")
}
}
if rule.ControlId >= 10 {
_ = session.Rollback()
return grmi.NewBusinessError("规则明细数据不合规")
}
rule.PO = entity.PO
rule.StepNo = entity.StepNo
rule.StepDesc = entity.StepDesc
rule.OperationId = entity.OperationId
rule.WorkPlaceNr = entity.WorkPlaceNr
ruleLi[index] = rule
}
err = ruleDao.Insert(&ruleLi)
if err != nil {
_ = session.Rollback()
return err
}
_ = session.Commit()
return nil
}

+ 24
- 0
web/controllers/base/OPCBasicComInfo.rest.go View File

@ -380,3 +380,27 @@ func RegisterUpdateOPCBasicComInfo(party router.Party, path string, method func(
RegisterMultiOPCBasicComInfo(party, "PUT", path, method)
}
/******************************************************************************
*
* @Function Name : RegisterSaveOneOPCBasicComInfo
*-----------------------------------------------------------------------------
*
* @Description : 为一个保存单条OPCBasicComInfo的方法注册路由
*
* @Function Parameters : 路由分组
*
* @Function Parameters : 路径
*
* @Function Parameters : 实际处理请求的方法
*
* @Author : zhangxin
*
* @Date : 2021-08-18
*
******************************************************************************/
func RegisterSaveOneOPCBasicComInfo(party router.Party, path string, method func(*models.Usertab, *model.OPCBasicComInfo) error) {
RegisterOneOPCBasicComInfo(party, "POST", path, method)
}

+ 23
- 0
web/controllers/base/TightenWrenchInfo.rest.go View File

@ -380,3 +380,26 @@ func RegisterUpdateTightenWrenchInfo(party router.Party, path string, method fun
RegisterMultiTightenWrenchInfo(party, "PUT", path, method)
}
/******************************************************************************
*
* @Function Name : RegisterSaveOneTightenWrenchInfo
*-----------------------------------------------------------------------------
*
* @Description : 为一个保存单条TightenWrenchInfo的方法注册路由
*
* @Function Parameters : 路由分组
*
* @Function Parameters : 路径
*
* @Function Parameters : 实际处理请求的方法
*
* @Author : zhangxin
*
* @Date : 2021-08-18
*
******************************************************************************/
func RegisterSaveOneTightenWrenchInfo(party router.Party, path string, method func(*models.Usertab, *model.TightenWrenchInfo) error) {
RegisterOneTightenWrenchInfo(party, "POST", path, method)
}

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

@ -1217,6 +1217,8 @@ func RegisterRoutes() {
RegisterUpdateOneOPCBasicComInfo(opcbasiccominfo, "/updateone", serviceOfOPCBasicComInfo.UpdateOne)
// OPCBasicComInfo修改多条
// RegisterUpdateOPCBasicComInfo(opcbasiccominfo, "/update", serviceOfOPCBasicComInfo.Update)
// OPCBasicComInfo保存
RegisterSaveOneOPCBasicComInfo(opcbasiccominfo, "/save", serviceOfOPCBasicComInfo.Save)
// OPCComDetailRule的路由组
opccomdetailrule := party.Party("/opccomdetailrule")
@ -1322,6 +1324,8 @@ func RegisterRoutes() {
RegisterUpdateOneTightenWrenchInfo(tightenwrenchinfo, "/updateone", serviceOfTightenWrenchInfo.UpdateOne)
// TightenWrenchInfo修改多条
// RegisterUpdateTightenWrenchInfo(tightenwrenchinfo, "/update", serviceOfTightenWrenchInfo.Update)
// TightenWrenchInfo保存一条
RegisterSaveOneTightenWrenchInfo(tightenwrenchinfo, "/save", serviceOfTightenWrenchInfo.Save)
// TightenWrenchRuleInfo的路由组
tightenwrenchruleinfo := party.Party("/tightenwrenchruleinfo")


Loading…
Cancel
Save