监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 甲方项目管理系统 | 签约案例 | 客户案例 | 在线试用
X 关闭
重庆OA快博

当前位置:工程项目OA系统 > 泛普各地 > 重庆OA系统 > 重庆OA快博

泛普OA软件协同办公系统项目管理-流程驱动项目任务进度开发说明

申请免费试用、咨询电话:400-8352-114

泛普OA软件协同办公系统项目管理-流程驱动项目任务进度开发说明v1.0 - 副本.doc
2 引言
2.1 编写目的
本开发说明书的目的描述清楚本次开发实现的功能,以及实现的方式。供需求提出者确认,已避免双方理解上的差距,作为开发交付成果的依据。
预期读者:需求提出人员,开发人员、测试人员,项目经理。
2.2 定义
一些术语的描述
2.3 参考资料
3 范围
3.1 系统主要目标
在泛普OA软件系统现有项目管理中进行修改,实现流程控制项目任务进度,每个项目任务对应的审批流程归档,即认为项目的该任务完成,系统自动创建该任务的下一任务对应的流程,使得下一任务进入进行状态,直至最后一个任务结束。在项目的子任务中可以查看到该任务对应的流程的审批状态进度(分为:未创建、已创建、已审批、已归档)。
在项目模板中,定义项目任务,每个模板中的项目任务对应一个审批流程。设置好后,在前台新建该类型的项目时,系统自动将项目任务对应的审批流程带入。项目创建后,系统自动触发第一个子任务对应的流程(利用外部数据触发流程功能)。
注:本说明只在于提供大家设计思路,细节有待完善。
3.2 实现方式
3.2.1 后台部分
1、 后台设置,项目管理模板管理中,在新建、编辑任务模板时,增加任务对应的审批流程功能。如图:
 
修改了jsp页面:
/proj/ Templet/ ProjTempletAdd.jsp
/proj/ Templet/ProjTempletEdit.jsp
/proj/ Templet/ProjTempletEditData.jsp
/proj/ Templet/ProjTempletOperate.jsp
/proj/ Templet/ProjTempletViewData.jsp
/proj/ Templet/TempletTaskEdit.jsp
修改了底层类文件:
/src/OA/proj/ Templet/ ProjTempletUtil.java
数据库修改:
执行SQL语句:alter table Prj_TemplateTask add workflowTypeid int
GO
3.2.2 前台部分
通过选择配置好的项目模板新建项目,将项目任务模板中事先配置好的审批流程自动带入。新建项目保存后,流程自动触发该项目第一个任务对应的审批流程,创建人默认成任务负责人。审批人在流程中进行配置。每个任务对应的审批流程可以在项目信息表中查看审批进度(分为 未创建、已创建、审批中、执行中、已归档)对应流程的4中节点类型。如图:
 
一个任务审批归档后,自动将任务的完成比率改为100%,并自动触发下一个任务对应的审批流程,流程的创建人为下一个人任务的负责人。流程的审批人也是同样在流程中进行设置。
以此类推,直到项目的最后一级任务完成。

前台修改了JSP:
1、/proj/data/ AddProjectData.jsp.jsp
2、/proj/data/ ProjectOperation.jsp
3、/proj/data/ ViewProjectData.jsp
前台修改了JS:
4、/js/ projTask/TaskUtil.js
说明:1、2、3、4用于实现在新建项目任务中增加流程字段的显示和保存
2中同时也实现了默认将新建项目的第一个任务设置为启动状态。便于流程的自动触发。
数据库修改:
执行SQL语句:
alter table Prj_TaskProcess add workflowid int
GO
alter table Prj_TaskProcess add applystatus int
GO
drop PROCEDURE Prj_TaskProcess_Insert
GO
  CREATE PROCEDURE Prj_TaskProcess_Insert (@prjid  int, @taskid  int, @wbscoding  varchar(20), @subject  varchar(80) , @version  tinyint, @begindate  varchar(10), @enddate  varchar(10), @workday decimal (10,1), @content  varchar(255), @fixedcost decimal (18,2), @parentid int, @parentids varchar (255), @parenthrmids varchar (255), @level_n tinyint, @hrmid int, @prefinish_1 varchar(4000), @workflowid_1 int,@applystatus_1 int,@realManDays decimal (6,1), @taskIndex int, @flag integer output, @msg varchar(80) output  ) AS declare @dsporder_9 int, @current_maxid int  select @current_maxid = max(dsporder) from Prj_TaskProcess where prjid = @prjid and version = @version and parentid = @parentid and isdelete<>'1' if @current_maxid is null set @current_maxid = 0 set @dsporder_9 = @current_maxid + 1  INSERT INTO Prj_TaskProcess ( prjid, taskid , wbscoding, subject , version , begindate, enddate, workday, content, fixedcost, parentid, parentids, parenthrmids, level_n, hrmid, islandmark, prefinish, dsporder, workflowid,applystatus,realManDays, taskIndex ) VALUES ( @prjid, @taskid , @wbscoding, @subject , @version , @begindate, @enddate, @workday, @content, @fixedcost, @parentid, @parentids, @parenthrmids, @level_n, @hrmid,'0',@prefinish_1,@dsporder_9,@workflowid_1,@applystatus_1, @realManDays,@taskIndex) Declare @id int, @maxid varchar(10), @maxhrmid varchar(255) select @id = max(id) from Prj_TaskProcess set @maxid = convert(varchar(10), @id) + ',' set @maxhrmid = '|' + convert(varchar(10), @id) + ',' + convert(varchar(10), @hrmid) + '|' update Prj_TaskProcess set parentids=parentids+@maxid, parenthrmids=parenthrmids+@maxhrmid  where id=@id  set @flag = @@identity set @msg = 'OK!'
GO
3.2.3 流程部分
1、 在后台搭建项目任务所需的审批流程,流程表单中需要的字段:
 
2、在流程归档节点前附加操作中设置DML接口动作:任务进度修改和触发下一任务,如图:
 

 
 
任务进度修改:实现修改当前审批流程对应的项目任务,审批通过后自动将任务进度改为100%。

 
 
触发下一任务:当前流程审批归档后,系统自动将当前项目任务对应的下一个任务状态设置为启动。启动后通过外部数据触发流程配置,实现下一任务对应流程的自动触发。
3.2.4 外部数据触发流程配置
1、 所有项目任务中需要的审批流程,需要在外部数据触发流程配置中进行配置。用于自动将处于启动状态的任务进行流程触发。如图:
注:需要提前在项目任务表中增加2个字段,执行下面SQL语句:
alter table Prj_TaskProcess add FtriggerFlag int default 0
GO
alter table Prj_TaskProcess add requestid int
GO
 
 
外部主表条件说明:workflowid=288, 288为当前流程的ID号,applystatus=1,代表改项目任务处于启动状态(任务未启动时候applystatus默认等于0)。当流程触发成功后回写项目任务表将任务的启动状态改为2,代表流程已经创建。触发流程失败时,将任务启动状态改完applystatus=0
 
详细设置如上图,将流程表单字段与项目任务信息进行一一对应。流程标题默认为项目任务名称,流程创建人为当前任务负责人,创建日期为任务开始日期,相关项目为当前任务的所属项目,任务为当前项目任务。正文为空,流程后续节点可设置编辑。
2、 外部数据触发流程周期设置,如图:
 
注:设置成1分钟扫描一次,太频繁对系统性能有影响。
4 数据库整体修改(前面每个模块已经提到过)
alter table Prj_TemplateTask add workflowTypeid int
GO
alter table Prj_TaskProcess add workflowid int
GO
alter table Prj_TaskProcess add applystatus int
GO
alter table Prj_TaskProcess add FtriggerFlag int default 0
GO
alter table Prj_TaskProcess add requestid int
GO
drop PROCEDURE Prj_TaskProcess_Insert
GO
  CREATE PROCEDURE Prj_TaskProcess_Insert (@prjid  int, @taskid  int, @wbscoding  varchar(20), @subject  varchar(80) , @version  tinyint, @begindate  varchar(10), @enddate  varchar(10), @workday decimal (10,1), @content  varchar(255), @fixedcost decimal (18,2), @parentid int, @parentids varchar (255), @parenthrmids varchar (255), @level_n tinyint, @hrmid int, @prefinish_1 varchar(4000), @workflowid_1 int,@applystatus_1 int,@realManDays decimal (6,1), @taskIndex int, @flag integer output, @msg varchar(80) output  ) AS declare @dsporder_9 int, @current_maxid int  select @current_maxid = max(dsporder) from Prj_TaskProcess where prjid = @prjid and version = @version and parentid = @parentid and isdelete<>'1' if @current_maxid is null set @current_maxid = 0 set @dsporder_9 = @current_maxid + 1  INSERT INTO Prj_TaskProcess ( prjid, taskid , wbscoding, subject , version , begindate, enddate, workday, content, fixedcost, parentid, parentids, parenthrmids, level_n, hrmid, islandmark, prefinish, dsporder, workflowid,applystatus,realManDays, taskIndex ) VALUES ( @prjid, @taskid , @wbscoding, @subject , @version , @begindate, @enddate, @workday, @content, @fixedcost, @parentid, @parentids, @parenthrmids, @level_n, @hrmid,'0',@prefinish_1,@dsporder_9,@workflowid_1,@applystatus_1, @realManDays,@taskIndex) Declare @id int, @maxid varchar(10), @maxhrmid varchar(255) select @id = max(id) from Prj_TaskProcess set @maxid = convert(varchar(10), @id) + ',' set @maxhrmid = '|' + convert(varchar(10), @id) + ',' + convert(varchar(10), @hrmid) + '|' update Prj_TaskProcess set parentids=parentids+@maxid, parenthrmids=parenthrmids+@maxhrmid  where id=@id  set @flag = @@identity set @msg = 'OK!'
GO

发布:2006-02-09 00:57    编辑:泛普软件 · admin    [打印此页]    [关闭]
相关文章:

泛普重庆OA快博其他应用

重庆OA软件 重庆OA新闻动态 重庆OA信息化 重庆OA客户 重庆OA快博 重庆OA行业资讯 重庆软件开发公司 重庆网站建设公司 重庆物业管理软件 重庆餐饮管理软件 重庆仓库管理系统 重庆门禁系统 重庆微信营销 重庆ERP 重庆监控公司 重庆金融行业软件 重庆B2B、B2C商城系统开发 重庆建筑施工项目管理系统开发