diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 9ec8313..5202f01 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -2,7 +2,6 @@ package model import ( "errors" - "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/page" msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m" @@ -101,7 +100,7 @@ func StoreApproval(in *approval.CreateRequest) (*Approval, error) { setting, terr := GetApprovalSettingFromKeyWord(in.Domain, in.Type) if terr != nil { - return terr + return errors.New("抄送人没有配置") } // 保存基本信息 @@ -356,9 +355,19 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { modelObj = modelObj.Where(&Approval{Type: in.Type}) } + /** + * 审批展示(抄送在此不表) + / \ + 进行中 通过或者拒绝 + / \ + 当前是我审批 我参与审批的 + */ if in.UserID != 0 { - modelObj = modelObj.Where(DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID)).Where("status != ?", StatusDoing)) + modelObj = modelObj.Where( + DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } if in.Status != 0 { @@ -442,7 +451,6 @@ func (m *Approval) operateStatus(status uint8, reply string, workFlowId uint64) } else { m.NowLevel = workFlow.Level + 1 nextFlow, err := GetWorkFlowByLevel(m.ID, m.NowLevel) - fmt.Println(nextFlow) if err != nil { return err } diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index 3ce9230..f13a018 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -33,13 +33,19 @@ var keyWordMap = map[string]string{ "画展审批": "show", } -func DataExist(domain, keyWork string) bool { +func DataExist(domain, keyWork, title string) bool { var count int64 - DB.Model(&ApprovalType{}).Where(&ApprovalType{Domain: domain, KeyWord: keyWork}).Count(&count) + + DB.Model(&ApprovalType{}).Where(&ApprovalType{Domain: domain, Title: title}).Count(&count) if count != 0 { return true + } + DB.Model(&ApprovalType{}).Where(&ApprovalType{Domain: domain, KeyWord: keyWork}).Count(&count) + if count != 0 { + return true } + return false } diff --git a/pkg/service/approval.go b/pkg/service/approval.go index fb8ed71..c31f2de 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -273,9 +273,10 @@ func (a *ApprovalProvider) DetailSetting(ctx context.Context, in *approval.Detai func (a *ApprovalProvider) CreateType(ctx context.Context, in *approval.CreateTypeRequest) (*approval.TypeResponse, error) { response := &approval.TypeResponse{} + keyWord := model.KeyWordFromTitle(in.Title) - if model.DataExist(in.Domain, keyWord) == true { + if model.DataExist(in.Domain, keyWord, in.Title) == true { return response, errors.New(m.ErrorAlreadyExist) }