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

當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA快博

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

申請免費試用、咨詢電話:400-8352-114

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

前臺修改了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用于實現(xiàn)在新建項目任務(wù)中增加流程字段的顯示和保存
2中同時也實現(xiàn)了默認(rèn)將新建項目的第一個任務(wù)設(shè)置為啟動狀態(tài)。便于流程的自動觸發(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、 在后臺搭建項目任務(wù)所需的審批流程,流程表單中需要的字段:
 
2、在流程歸檔節(jié)點前附加操作中設(shè)置DML接口動作:任務(wù)進(jìn)度修改和觸發(fā)下一任務(wù),如圖:
 

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

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