业务分组服务
用于获得用户的起草/业务树、常用文档/起草等信息。
| Modifiers | Name | Description |
|---|---|---|
static Integer |
aliasOverridingOrder |
| Type | Name and description |
|---|---|
BizPermissionService |
bizPermissionService |
OsmEmployeeService |
osmEmployeeService |
| Type | Name and description |
|---|---|
protected String |
assembleUrl(Map bd, Long domId, boolean isCreateTree, StringBuilder sb) |
void |
bootStrapInit()初始化:监控个性设置时间,自动清理缓存 |
void |
clearCache(Long userId = null)清理业务树/列表缓存 |
Map<String, List<Map>> |
flattenTree(Map map)将 getParticipantTree、getCreateTree 返回的多级数据进行扁平化处理 |
protected Object |
genFreqList(Employee emp, boolean isCreateTree, boolean isJson) |
protected void |
genFreqTree(List<Map> documentsResult, List<Map> freqs, List<Map> definitions, boolean isCreateTree) |
protected void |
genFreqTreeJSON(StringBuilder sb, List<Map> freqs, List<Map> definitions, boolean isCreateTree) |
protected String |
genGroupSelectTree(Employee emp, BizGroup group, boolean isFreqContained, boolean isCreateTree)根据业务定义分组,计算用户的授权树,并返回兼容 osmTree 的 json 字符串 |
protected void |
genGroupSelectTree(StringBuilder sb, Integer level, String parentName, List<Map> nodes, Map authedNodes, Map authedGps) |
protected Object |
genGroupTree(Employee emp, BizGroup group, boolean isFreqContained, boolean isCreateTree, boolean isJson)根据业务定义分组,计算用户的起草或业务树 |
protected void |
genGroupTree(List<Map> nodesResult, List<Map> nodes, List<Map> authedNodes, List<Map> authedGps, List<Map> definitions, Domain domain, boolean isCreateTree) |
protected void |
genGroupTreeJSON(StringBuilder sb, List<Map> nodes, List<Map> authedNodes, List<Map> authedGps, List<Map> definitions, Domain domain, boolean isCreateTree) |
String |
getCacheName()获取业务树/列表的缓存名称 |
void |
getCreateOrParticipantTree(Map params, boolean isCreate, grails.artefact.Controller controller)根据业务分组,计算当前用户的起草树/当前用户的列表(参与)树 |
protected String |
getCreateOrParticipantTreeAsHtml(Employee employee, BizGroup group, boolean showRoot, boolean isCreate, boolean isFreqContained)根据业务分组,计算用户的业务树的 html(参与或起草) |
String |
getCreateSelectTreeAsJSON(Employee emp, BizGroup group, boolean isFreqContained)根据业务分组,计算用户的起草树,返回的 json 格式兼容 osmTree,用于从业务树中选择 |
Map |
getCreateTree(Employee emp, BizGroup group, boolean isFreqContained)根据业务定义分组,计算用户的起草树 |
String |
getCreateTreeAsJSON(Employee emp, BizGroup group, boolean isFreqContained)根据业务分组,计算用户的起草树 |
protected Map |
getGroupTreeData(Employee emp, BizGroup group, boolean isFreqContained, boolean isCreateTree)@return [group: BizGroup 对象, definitions: BusinessDefinition 列表, authedNodes: BizGroupNode 列表, authedGps: BizGroupNodeDefinition 列表, freqs: [[name:xx, id: bizId], ...]] |
protected String |
getHqlFindBd()查询业务定义信息(关联流程)的 HQL,用于 genFreqList |
protected String |
getHqlFindGroup()查询分组信息的 HQL,用于 getGroupTreeData |
String |
getParticipantSelectTreeAsJSON(Employee emp, BizGroup group, boolean isFreqContained)根据业务定义分组,计算用户参与的业务定义树,返回的 json 格式兼容 osmTree,用于从业务树中选择 |
Map |
getParticipantTree(Employee emp, BizGroup group, boolean isFreqContained)根据业务定义分组,计算用户参与的业务定义树 |
String |
getParticipantTreeAsJSON(Employee emp, BizGroup group, boolean isFreqContained)根据业务定义分组,计算用户参与的业务定义树 |
void |
initGroupNodes(DomainApplication application)系统启动时,根据业务定义,自动更新业务分组 |
void |
initGroupNodes(Long bizId) |
void |
initGroupNodes(BusinessDefinition biz) |
void |
listFreq(Map params, Boolean isCreate, grails.artefact.Controller controller)计算常用起草业务列表/常用业务列表 |
List<Map> |
listFreqCreate(Employee emp)计算常用起草业务定义列表 |
String |
listFreqCreateAsJSON(Employee emp)计算常用起草业务定义列表 |
List<Map> |
listFreqParticipant(Employee emp)计算常用业务定义列表 |
String |
listFreqParticipantAsJSON(Employee emp)计算常用业务定义列表 |
List<Map> |
parseFreqProfiles(String profile)解析个性设置中的常用文档或常用起草列表 |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
初始化:监控个性设置时间,自动清理缓存
清理业务树/列表缓存
userId - 删除对应用户的缓存,如果为 null,则清空缓存将 getParticipantTree、getCreateTree 返回的多级数据进行扁平化处理
[definitions: 业务定义列表, frequents: 常用[起草]业务定义列表]。根据业务定义分组,计算用户的授权树,并返回兼容 osmTree 的 json 字符串
group - 业务分组,如果为 null,则显示所有分组根据业务定义分组,计算用户的起草或业务树
emp - 员工group - 业务分组isFreqContained - 是否包含常用列表isCreateTree - 是否起草树isJson - 是否返回 json 字符串还是 map 对象获取业务树/列表的缓存名称
根据业务分组,计算当前用户的起草树/当前用户的列表(参与)树
在 BizDefinitionController 和 ProcessController 中调用。
params.freq - 是否包含常用起草列表params.type - 返回结果类型,包括 json(默认)、html、其他(通过 viewPath 渲染)params.showRoot - 是否要显示根节点,仅当 type 为 html 时有效params.group - 业务分组代码params.select - 是否返回兼容 osmTree、用于选择的 json 字符串,仅当 viewPath 为空时有效params.viewPath - 渲染的 gsp 页面路径params.jsonp - 如果是通过 jsonp 请求,则将返回的 JSON 对象赋值给本参数,type 为 html 时无效isCreate - 如果为 true 则返回起草树,否则返回参与树controller - 调用本方法的控制器对象,用来渲染结果根据业务分组,计算用户的业务树的 html(参与或起草)
employee - 员工group - 需要显示的分组,如果为 null,则显示所有分组showRoot - 是否要显示根节点("业务起草"或"我的业务")isCreate - 是否是起草树isFreqContained - 是否包含常用业务根据业务分组,计算用户的起草树,返回的 json 格式兼容 osmTree,用于从业务树中选择
emp - 员工,如果为 null,则取当前用户group - 如果为 null,则显示所有分组根据业务定义分组,计算用户的起草树
返回结果的结构参考 getParticipantTree,不同的是,业务列表中的 url 为文档起草的链接。
emp - 员工,如果为 null,则取当前用户group - 业务定义分组。如果为 null,则取 default 或者唯一的那个分组isFreqContained - 是否包含常用起草列表根据业务分组,计算用户的起草树
emp - 员工,如果为 null,则取当前用户group - 业务定义分组。如果为 null,则取 default 或者唯一的那个分组isFreqContained - 是否包含常用起草列表
查询业务定义信息(关联流程)的 HQL,用于 genFreqList
查询分组信息的 HQL,用于 getGroupTreeData
根据业务定义分组,计算用户参与的业务定义树,返回的 json 格式兼容 osmTree,用于从业务树中选择
emp - 员工,如果为 null,则取当前用户group - 如果为 null,则显示所有分组根据业务定义分组,计算用户参与的业务定义树
返回结果的第一层为 [name: 分组名称, code: 分组编码, nodes: 节点列表]。
第二层,也就是节点列表 nodes 的每一个 Map 元素的结构为 [name: 节点名称, businesses: 业务列表, nodes: []];
如果包含常用业务,则会有一个形如 [name: "freq", businesses: 业务列表] 的元素,也就是 name 固定为 freq。
每个节点下,都可能包含有下级节点 nodes、以及该节点下的业务定义列表 businesses;
业务定义列表 businesses 的元素 Map 结构为 [id: 业务定义ID, name: 业务名称, docClass: xx, docController: xx, url: xx, notes: 备注],
其中 url 为打开业务文档列表(list)的 url。
返回结果可以通过 flattenTree 方法,仅返回所有的业务定义列表。
emp - 员工,如果为 null,则取当前用户group - 业务定义分组。如果为 null,则取 default 或者唯一的那个分组isFreqContained - 是否包含常用业务列表根据业务定义分组,计算用户参与的业务定义树
emp - 员工,如果为 null,则取当前用户group - 业务定义分组。如果为 null,则取 default 或者唯一的那个分组isFreqContained - 是否包含常用业务列表系统启动时,根据业务定义,自动更新业务分组
关联系统参数:分组代码(bropen.framework.bizdoc.auto.update.group.code)
注:
计算常用起草业务列表/常用业务列表
在 BizDefinitionController 和 ProcessController 中调用。
isCreate - 如果为 true 则返回常用起草的业务列表,否则返回常用业务列表controller - 调用本方法的控制器对象,用来渲染结果计算常用起草业务定义列表
emp - 员工,如果为 null,则取当前用户计算常用起草业务定义列表
emp - 员工,如果为 null,则取当前用户计算常用业务定义列表
emp - 员工,如果为 null,则取当前用户计算常用业务定义列表
emp - 员工,如果为 null,则取当前用户解析个性设置中的常用文档或常用起草列表
[[id: bizId, name: bizName, disabled: true/false], ...]。profile - 个性设置的值