監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

泛普OA軟件協(xié)同辦公系統(tǒng)項(xiàng)目管理-流程驅(qū)動(dòng)項(xiàng)目任務(wù)進(jìn)度開發(fā)說明

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

泛普OA軟件協(xié)同辦公系統(tǒng)項(xiàng)目管理-流程驅(qū)動(dòng)項(xiàng)目任務(wù)進(jìn)度開發(fā)說明v1.0 - 副本.doc
2 引言
2.1 編寫目的
本開發(fā)說明書的目的描述清楚本次開發(fā)實(shí)現(xiàn)的功能,以及實(shí)現(xiàn)的方式。供需求提出者確認(rèn),已避免雙方理解上的差距,作為開發(fā)交付成果的依據(jù)。
預(yù)期讀者:需求提出人員,開發(fā)人員、測(cè)試人員,項(xiàng)目經(jīng)理。
2.2 定義
一些術(shù)語的描述
2.3 參考資料
3 范圍
3.1 系統(tǒng)主要目標(biāo)
在泛普OA軟件系統(tǒng)現(xiàn)有項(xiàng)目管理中進(jìn)行修改,實(shí)現(xiàn)流程控制項(xiàng)目任務(wù)進(jìn)度,每個(gè)項(xiàng)目任務(wù)對(duì)應(yīng)的審批流程歸檔,即認(rèn)為項(xiàng)目的該任務(wù)完成,系統(tǒng)自動(dòng)創(chuàng)建該任務(wù)的下一任務(wù)對(duì)應(yīng)的流程,使得下一任務(wù)進(jìn)入進(jìn)行狀態(tài),直至最后一個(gè)任務(wù)結(jié)束。在項(xiàng)目的子任務(wù)中可以查看到該任務(wù)對(duì)應(yīng)的流程的審批狀態(tài)進(jìn)度(分為:未創(chuàng)建、已創(chuàng)建、已審批、已歸檔)。
在項(xiàng)目模板中,定義項(xiàng)目任務(wù),每個(gè)模板中的項(xiàng)目任務(wù)對(duì)應(yīng)一個(gè)審批流程。設(shè)置好后,在前臺(tái)新建該類型的項(xiàng)目時(shí),系統(tǒng)自動(dòng)將項(xiàng)目任務(wù)對(duì)應(yīng)的審批流程帶入。項(xiàng)目創(chuàng)建后,系統(tǒng)自動(dòng)觸發(fā)第一個(gè)子任務(wù)對(duì)應(yīng)的流程(利用外部數(shù)據(jù)觸發(fā)流程功能)。
注:本說明只在于提供大家設(shè)計(jì)思路,細(xì)節(jié)有待完善。
3.2 實(shí)現(xiàn)方式
3.2.1 后臺(tái)部分
1、 后臺(tái)設(shè)置,項(xiàng)目管理模板管理中,在新建、編輯任務(wù)模板時(shí),增加任務(wù)對(duì)應(yīng)的審批流程功能。如圖:
 
修改了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
數(shù)據(jù)庫修改:
執(zhí)行SQL語句:alter table Prj_TemplateTask add workflowTypeid int
GO
3.2.2 前臺(tái)部分
通過選擇配置好的項(xiàng)目模板新建項(xiàng)目,將項(xiàng)目任務(wù)模板中事先配置好的審批流程自動(dòng)帶入。新建項(xiàng)目保存后,流程自動(dòng)觸發(fā)該項(xiàng)目第一個(gè)任務(wù)對(duì)應(yīng)的審批流程,創(chuàng)建人默認(rèn)成任務(wù)負(fù)責(zé)人。審批人在流程中進(jìn)行配置。每個(gè)任務(wù)對(duì)應(yīng)的審批流程可以在項(xiàng)目信息表中查看審批進(jìn)度(分為 未創(chuàng)建、已創(chuàng)建、審批中、執(zhí)行中、已歸檔)對(duì)應(yīng)流程的4中節(jié)點(diǎn)類型。如圖:
 
一個(gè)任務(wù)審批歸檔后,自動(dòng)將任務(wù)的完成比率改為100%,并自動(dòng)觸發(fā)下一個(gè)任務(wù)對(duì)應(yīng)的審批流程,流程的創(chuàng)建人為下一個(gè)人任務(wù)的負(fù)責(zé)人。流程的審批人也是同樣在流程中進(jìn)行設(shè)置。
以此類推,直到項(xiàng)目的最后一級(jí)任務(wù)完成。

前臺(tái)修改了JSP:
1、/proj/data/ AddProjectData.jsp.jsp
2、/proj/data/ ProjectOperation.jsp
3、/proj/data/ ViewProjectData.jsp
前臺(tái)修改了JS:
4、/js/ projTask/TaskUtil.js
說明:1、2、3、4用于實(shí)現(xiàn)在新建項(xiàng)目任務(wù)中增加流程字段的顯示和保存
2中同時(shí)也實(shí)現(xiàn)了默認(rèn)將新建項(xiàng)目的第一個(gè)任務(wù)設(shè)置為啟動(dòng)狀態(tài)。便于流程的自動(dòng)觸發(fā)。
數(shù)據(jù)庫修改:
執(zhí)行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、 在后臺(tái)搭建項(xiàng)目任務(wù)所需的審批流程,流程表單中需要的字段:
 
2、在流程歸檔節(jié)點(diǎn)前附加操作中設(shè)置DML接口動(dòng)作:任務(wù)進(jìn)度修改和觸發(fā)下一任務(wù),如圖:
 

 
 
任務(wù)進(jìn)度修改:實(shí)現(xiàn)修改當(dāng)前審批流程對(duì)應(yīng)的項(xiàng)目任務(wù),審批通過后自動(dòng)將任務(wù)進(jìn)度改為100%。

 
 
觸發(fā)下一任務(wù):當(dāng)前流程審批歸檔后,系統(tǒng)自動(dòng)將當(dāng)前項(xiàng)目任務(wù)對(duì)應(yīng)的下一個(gè)任務(wù)狀態(tài)設(shè)置為啟動(dòng)。啟動(dòng)后通過外部數(shù)據(jù)觸發(fā)流程配置,實(shí)現(xiàn)下一任務(wù)對(duì)應(yīng)流程的自動(dòng)觸發(fā)。
3.2.4 外部數(shù)據(jù)觸發(fā)流程配置
1、 所有項(xiàng)目任務(wù)中需要的審批流程,需要在外部數(shù)據(jù)觸發(fā)流程配置中進(jìn)行配置。用于自動(dòng)將處于啟動(dòng)狀態(tài)的任務(wù)進(jìn)行流程觸發(fā)。如圖:
注:需要提前在項(xiàng)目任務(wù)表中增加2個(gè)字段,執(zhí)行下面SQL語句:
alter table Prj_TaskProcess add FtriggerFlag int default 0
GO
alter table Prj_TaskProcess add requestid int
GO
 
 
外部主表?xiàng)l件說明:workflowid=288, 288為當(dāng)前流程的ID號(hào),applystatus=1,代表改項(xiàng)目任務(wù)處于啟動(dòng)狀態(tài)(任務(wù)未啟動(dòng)時(shí)候applystatus默認(rèn)等于0)。當(dāng)流程觸發(fā)成功后回寫項(xiàng)目任務(wù)表將任務(wù)的啟動(dòng)狀態(tài)改為2,代表流程已經(jīng)創(chuàng)建。觸發(fā)流程失敗時(shí),將任務(wù)啟動(dòng)狀態(tài)改完applystatus=0
 
詳細(xì)設(shè)置如上圖,將流程表單字段與項(xiàng)目任務(wù)信息進(jìn)行一一對(duì)應(yīng)。流程標(biāo)題默認(rèn)為項(xiàng)目任務(wù)名稱,流程創(chuàng)建人為當(dāng)前任務(wù)負(fù)責(zé)人,創(chuàng)建日期為任務(wù)開始日期,相關(guān)項(xiàng)目為當(dāng)前任務(wù)的所屬項(xiàng)目,任務(wù)為當(dāng)前項(xiàng)目任務(wù)。正文為空,流程后續(xù)節(jié)點(diǎn)可設(shè)置編輯。
2、 外部數(shù)據(jù)觸發(fā)流程周期設(shè)置,如圖:
 
注:設(shè)置成1分鐘掃描一次,太頻繁對(duì)系統(tǒng)性能有影響。
4 數(shù)據(jù)庫整體修改(前面每個(gè)模塊已經(jīng)提到過)
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

發(fā)布:2006-02-09 00:57    編輯:泛普軟件 · admin    [打印此頁]    [關(guān)閉]
相關(guān)文章:

泛普重慶OA快博其他應(yīng)用

重慶OA軟件 重慶OA新聞動(dòng)態(tài) 重慶OA信息化 重慶OA客戶 重慶OA快博 重慶OA行業(yè)資訊 重慶軟件開發(fā)公司 重慶網(wǎng)站建設(shè)公司 重慶物業(yè)管理軟件 重慶餐飲管理軟件 重慶倉庫管理系統(tǒng) 重慶門禁系統(tǒng) 重慶微信營銷 重慶ERP 重慶監(jiān)控公司 重慶金融行業(yè)軟件 重慶B2B、B2C商城系統(tǒng)開發(fā) 重慶建筑施工項(xiàng)目管理系統(tǒng)開發(fā)