diff --git a/dao/base/implments/Operation.dao.impl.go b/dao/base/implments/Operation.dao.impl.go index 604431e..8156159 100644 --- a/dao/base/implments/Operation.dao.impl.go +++ b/dao/base/implments/Operation.dao.impl.go @@ -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 -} \ No newline at end of file +} diff --git a/meta/base/Operation.meta.go b/meta/base/Operation.meta.go index 8a61689..1518cd4 100644 --- a/meta/base/Operation.meta.go +++ b/meta/base/Operation.meta.go @@ -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"}) diff --git a/models/base/Operation.model.go b/models/base/Operation.model.go index 7d7ea6e..0724add 100644 --- a/models/base/Operation.model.go +++ b/models/base/Operation.model.go @@ -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"` diff --git a/services/base/OPCBasicComInfo.service.go b/services/base/OPCBasicComInfo.service.go index 19b747c..e575aed 100644 --- a/services/base/OPCBasicComInfo.service.go +++ b/services/base/OPCBasicComInfo.service.go @@ -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 } /****************************************************************************** diff --git a/services/base/TightenWrenchInfo.service.go b/services/base/TightenWrenchInfo.service.go index 44b10b5..4554ec1 100644 --- a/services/base/TightenWrenchInfo.service.go +++ b/services/base/TightenWrenchInfo.service.go @@ -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 } /****************************************************************************** diff --git a/services/base/implments/OPCBasicComInfo.service.impl.go b/services/base/implments/OPCBasicComInfo.service.impl.go index bf87048..17321bf 100644 --- a/services/base/implments/OPCBasicComInfo.service.impl.go +++ b/services/base/implments/OPCBasicComInfo.service.impl.go @@ -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 +} \ No newline at end of file diff --git a/services/base/implments/Operation.service.impl.go b/services/base/implments/Operation.service.impl.go index 06d0cc6..174a036 100644 --- a/services/base/implments/Operation.service.impl.go +++ b/services/base/implments/Operation.service.impl.go @@ -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), diff --git a/services/base/implments/ScanRuleInfo.service.impl.go b/services/base/implments/ScanRuleInfo.service.impl.go index cc14cf4..05a866a 100644 --- a/services/base/implments/ScanRuleInfo.service.impl.go +++ b/services/base/implments/ScanRuleInfo.service.impl.go @@ -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 { diff --git a/services/base/implments/TightenWrenchInfo.service.impl.go b/services/base/implments/TightenWrenchInfo.service.impl.go index d71fd83..d4ec21d 100644 --- a/services/base/implments/TightenWrenchInfo.service.impl.go +++ b/services/base/implments/TightenWrenchInfo.service.impl.go @@ -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 +} diff --git a/web/controllers/base/OPCBasicComInfo.rest.go b/web/controllers/base/OPCBasicComInfo.rest.go index 0f477a3..06ee669 100644 --- a/web/controllers/base/OPCBasicComInfo.rest.go +++ b/web/controllers/base/OPCBasicComInfo.rest.go @@ -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) +} \ No newline at end of file diff --git a/web/controllers/base/TightenWrenchInfo.rest.go b/web/controllers/base/TightenWrenchInfo.rest.go index fd53570..434607a 100644 --- a/web/controllers/base/TightenWrenchInfo.rest.go +++ b/web/controllers/base/TightenWrenchInfo.rest.go @@ -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) +} \ No newline at end of file diff --git a/web/controllers/base/base.go b/web/controllers/base/base.go index a95debd..e438673 100644 --- a/web/controllers/base/base.go +++ b/web/controllers/base/base.go @@ -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")