项目云-计划管理-一些功能的扩展点。原创
金蝶云社区-云社区用户456N1273
云社区用户456N1273
1人赞赏了该文章 23次浏览 未经作者许可,禁止转载编辑于2024年10月24日 17:45:02
summary-icon摘要由AI智能服务提供

文本主要描述了两个软件功能开发的细节。一是主项计划编制,其代码逻辑会根据项目分类自动带入相应阶段的分录行,并提供二次开发方案以调整默认行为。二是任务汇报列表的过滤逻辑,涉及基于权限、责任人、项目管理员及例外人员等多维度筛选,并考虑了责任类别、预警颜色及任务状态等自定义过滤,同时提供了二次开发方案以调整过滤条件。


1)主项计划编制,自动带入的任务分录行逻辑,会根据项目分类决定带入有多少个阶段,则有多少个分录行。

 image.png

具体代码逻辑的插件,kd.pmgt.pmpt.formplugin.PmMasterPlanEditPlugin

具体代码方法如下:

 image.png

 二开方案:如果不需要默认带入的任务行,在afterBindData方法里把对应分录行删除即可。


2)任务汇报列表的过滤如下:

标品逻辑是首先拿到所有有权限能看到的任务(注意:这三个条件是或的关系)

(1) 责任部门或协办部门就是当前登录人负责的部门(及其下级部门)的任务(这里提到的部门统一只可能是行政部门)

(2) 责任人(或协办人、或共享人)是当前登录人的任务

(3) 如果当前登录人是某个项目的项目管理员,则当前登录人可以看到该项目旗下的所有任务

(4) 如果当前登录人是例外人员,需要获取例外人员管辖范围内的项目(责任部门是例外人员配置的组织,同时也要过滤排除的项目) * 然后再处理责任类别和预警颜色这两个自定义过滤项 * 最后再加个过滤,保证最终显示的任务是“已发布”计划中的分录任务(交办任务和会议决议任务除外)。

image.png

二开方案:如果不需要该任务过滤的条件,可以新增一个列表的二开插件,在setFilter方法里,从e.getFilters()方法里取出id的QFilter并且清空即可(因为上面的过滤条件最终是查出id集合并且作为列表过滤)。



图标赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!