feat: sql解析器替换、工单统一由‘我的流程’发起、流程定义支持自定义条件触发审批、资源隐藏编号、model支持物理删除等

This commit is contained in:
meilin.huang
2024-10-16 17:24:50 +08:00
parent 43edef412c
commit e135e4ce64
170 changed files with 397197 additions and 1251 deletions

View File

@@ -23,8 +23,8 @@ type Procdef interface {
// 删除流程实例信息
DeleteProcdef(ctx context.Context, defId uint64) error
// GetProcdefIdByCodePath 根据资源编号路径获取对应的流程定义id
GetProcdefIdByCodePath(ctx context.Context, codePaths ...string) uint64
// GetProcdefByCodePath 根据资源编号路径获取对应的流程定义
GetProcdefByCodePath(ctx context.Context, codePaths ...string) *entity.Procdef
// GetProcdefByResource 根据资源获取对应的流程定义
GetProcdefByResource(ctx context.Context, resourceType int8, resourceCode string) *entity.Procdef
@@ -82,21 +82,13 @@ func (p *procdefAppImpl) DeleteProcdef(ctx context.Context, defId uint64) error
return p.DeleteById(ctx, defId)
}
func (p *procdefAppImpl) GetProcdefIdByCodePath(ctx context.Context, codePaths ...string) uint64 {
func (p *procdefAppImpl) GetProcdefByCodePath(ctx context.Context, codePaths ...string) *entity.Procdef {
relateIds, err := p.tagTreeRelateApp.GetRelateIds(ctx, tagentity.TagRelateTypeFlowDef, codePaths...)
if err != nil || len(relateIds) == 0 {
return 0
}
return relateIds[len(relateIds)-1]
}
func (p *procdefAppImpl) GetProcdefByResource(ctx context.Context, resourceType int8, resourceCode string) *entity.Procdef {
resourceCodePaths := p.tagTreeApp.ListTagPathByTypeAndCode(resourceType, resourceCode)
procdefId := p.GetProcdefIdByCodePath(ctx, resourceCodePaths...)
if procdefId == 0 {
return nil
}
procdefId := relateIds[len(relateIds)-1]
procdef, err := p.GetById(procdefId)
if err != nil {
return nil
@@ -107,6 +99,11 @@ func (p *procdefAppImpl) GetProcdefByResource(ctx context.Context, resourceType
return procdef
}
func (p *procdefAppImpl) GetProcdefByResource(ctx context.Context, resourceType int8, resourceCode string) *entity.Procdef {
resourceCodePaths := p.tagTreeApp.ListTagPathByTypeAndCode(resourceType, resourceCode)
return p.GetProcdefByCodePath(ctx, resourceCodePaths...)
}
// 判断该流程实例是否可以执行修改操作
func (p *procdefAppImpl) canModify(prodefId uint64) error {
if activeInstCount := p.procinstApp.CountByCond(&entity.Procinst{ProcdefId: prodefId, Status: entity.ProcinstStatusActive}); activeInstCount > 0 {