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

当前位置:工程项目OA系统 > 泛普服务体系 > OA系统二次开发

泛普OA软件二次开发总结(史上最全的)

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

泛普oa 平台二次开发经验总结
 

 
首先,对泛普软件节点后附加操作二次开发的实践:
一、把 ChurukuAction.class文件 放入泛普OA系统classbean泛普OA系统interfacesworkflowaction文件夹下面。
二、在泛普OA系统WEB-INFservice下,有一个action.xml文件,打开编辑,在</module>前面加上这段话:
<service-point id="ChurukuAction" interface="泛普OA系统.interfaces.workflow.action.Action">
        <invoke-factory>
            <construct class="泛普OA系统.interfaces.workflow.action.ChurukuAction"/>
        </invoke-factory>
</service-point>  
保存后关闭。
三、在泛普oa 系统流程设置的 节点后附加操作  上加上我们自己的这个action(ChurukuAction)
 
writeLog("debug info is "+ debugInfo) ;记录日志,写入日志文件。
根据一些流程知识,可以知道:
License表中存放了公司一些详细信息。
通过systeminfo/label/ManageLabel.jsp页面可以管理标签。时刻牢记用标签,来寻找页面(不同标签,可能显示同一个文字)。
根据标签,查找页面
 
每个jsp页面几乎都include了init.jsp页面, 搭建基本jsp框架
 
根据页面可以知道,数据库操作,基本用RecodeSet就可以。
<jsp:useBean id="RecordSet" class="泛普OA系统.conn.RecordSet" scope="page"/>
<%String companyName="";String cversion="";
RecordSet.executeSql("select companyname,cversion from license");
if (RecordSet.next())
{        companyName=RecordSet.getString("companyname");
         cversion=RecordSet.getString("cversion");
}%>运用recodeset可以方便操作数据库。
 
----修改部门为总部
因客户经常要求角色选择时候,默认为总部,要不然每次都要选择,会忘记,现修改页面,让其默认角色为总部,方便操作!
  首先,我们可以根据地址,找到流程设置页面addwf.jsp,根据一些请求,找到设置默认角色的页面,editoperatorgroup.jsp,在第302行,option上,加上select让其默认选择。(140标签为 总部,根据140查找)。
 
----获取属性文件的值:继承baseBean的类,直接可以通过  public String getPropValue(String fname , String key)获取相应key的值。(属性文件放在WEB-INF/prop 目录)
---- 泛普OA系统.general.GCONST 类提供了一个静态方法getRootPath() ,可以直接返回系统的运行目录。
----测试上传文件到服务器,访问已经上传的文件,导入导出excel文件。使用缓存机制暂时不考虑。
泛普OA系统.general.Util    :
提供了大量基本的工具方法(其中提供了对字符,数据等的处理),其中null2String方法,fromScreen方法,toScreen 方法,TokenizerString ,toHtml方法是大家需要关注的方法。
泛普OA系统.general.TimeUtil    :
提供对日期操作的工具方法,如:日期转化,日期加减
泛普OA系统.general. SendMail :
提供了邮件发送的基本方法,其中send方法,sendhtml方法,sendMiltipartText方法是大家需要关注的方法。
泛普OA系统.sms. SMSManager
提供了发送短信的基本方法,其中sendDBSMS方法,发送短信后会在OA的数据库中存放一条发送记录,sendSMS只发送短信,不记录信息
泛普OA系统.file.FileManage :
提供了文件处理的工具方法。其中createDir方法,copy方法,moveFileTo方法,DeleteFile方法,extractFileName方法,extractFileExt方法,extractFilePath方法是大家需要关注的方法。
 
7/12
 
将项目部署到本地:copy oracle的dmp文件,建立一个用户,赋给它dba权限,建立一个表空间,然后将dmp(表空间)赋给我们新建的用户。(具体语句另外附带)
数据库更改设置,oracle的net Manager还得配置本地(可能不需要)
 
对页面加上系统已有权限:首先从系统的权限设置中找到需要引用的权限名称,如下如找到“地址类型维护”这个权限,其ID为41,然后通过“select rightdetail from systemrightdetail where rightid=41”得到其rightdetail=“AddAddressType:Add”,那么在JSP页面中通过如下语句,就可以使得只有的“地址类型维护”这个权限用的用户可以查看该页面:
<% if (!HrmUserVarify.checkUserRight("AddAddressType:Add ", user) ) {
response.sendRedirect("/notice/noright.jsp");
return;}%>
若要新增权限功能,则须新插入权限表:
 
         文档数据结构:
docdetail:文档信息存储,
docdetailcontent:文档内容(sqlserver不用该表)
docimagefile:文档附件关联关系
docshare:文档共享表
sharinnerdoc:文档共享明细表
 
         泛普协同OA流程数据结构:
Workflow_formbase:工作流表单信息表,标注表单名字和所在分部
Workflow_requestbase:流程的基本信息
Workflow_form:流程的具体信息通过REQUESTID字段和Workflow_requestbase表关联
Workflow_formdetail:流程的明细信息,通过REQUESTID字段和Workflow_requestbase表关联
Workflow_currentoperator:流程当前未操作者,已操作者等信息
workflow_requestlog流程处理人处理过的审批意见
workflow_requestviewlog 流程的查看日志
 
         泛普协同OA软禁单点继承登陆设置:查看二次开发文档—单点登录;
 
         数据源和计划任务接口:
 
--安装泛普OA系统,跳过license方法,找到泛普OA系统/login下的VerifyLogin.java文件,将return “19”的所有if都改为false,即不让程序进入19。
 
自定义浏览框!(实际与说明书上不同,需要在设置中心中设置,自定义浏览按钮)
 
 
7/13
泛普OA办公协同对工作流的解读:(通过httpwatch查看)
  1. 先根据workflowid查找到对应workflow_base流程,…过程复杂。。
  2. 通过一系列过程,找到流程体页面:WorkflowAddRequestBodyAction.jsp(在标题上加了123,待改—这样将会影响到每个页面);明细表页面:WorkflowAddRequestDetailBody.jsp
3、 BacoError.gif是!图标。
  1. 根据HttpWatch显示,人员浏览框 页面为select.jsp,hrmResource即人员表中,loginid表示该人员是否可登陆系统,若为null,则无法登陆,managerid表示上级人员,要更改人员浏览页上的显示信息,只需更改Select.jsp即可。如要在选择人员时显示全部人员,只需将loginid is not null 去掉即可。
  2. 页面登陆从Login.jsp开始,到VerifyLogin.jsp再进入main.jsp页面。中间会通过Homepageredirect.jsp跳转。
6、  对ResourceBrowser.jsp页面进行修改。
 
 
select * from 泛普OA系统.dbo.workflow_Agent
select isFormSignature,formSignatureWidth,formSignatureHeight from 泛普OA系统.dbo.workflow_flownode where workflowId=28;
select * from 泛普OA系统.dbo.workflow_flownode where workflowId=28
select * from 泛普OA系统.dbo.HrmResource
select lastname,departmentid,jobtitle from 泛普OA系统.dbo.HrmResource;
select *from 泛普OA系统.dbo.HrmJobTitles;
select *from 泛普OA系统.dbo.HrmDepartment;
 
7/14(医惠科技处)
         人员选择的  浏览按钮:
<span id=viewerspan><a href="javaScript:openhrm(<%=viewer%>);" onclick='pointerXY(event);'><%=Util.toScreen(viewername,user.getLanguage())%></a></span>
  <input type=hidden name=viewer value="<%=viewer%>"></td>
 
    泛普oa智能办公系统资产商品选择  浏览按钮:
待解!
报表问题,安装finereport之后,自行研究报表生成使用。使用按照自带api文档进行,步骤如下:
         首先,进行数据库定义,连接数据库,拉出相应的表,对表中数据进行生成报表
         其次,对生成的报表进行部署,部署出现错误,500错误,和一个数据库错误。待解!
已解:500错误是因为缺少jar包,将finereport安装目录下的lib下的jar包都移过去,问题就解决。数据库问题是数据库连接错误,未找到合适的数据库连接,finereport好像不会内置数据库配置,需要手工配置resource文件夹下面的datasource.xml文件。
 
7/15
 
         浮点数2位更改为3位:
         根据httpwatch查看,跟踪到form_operation.jsp页面,
(1)将里面的所有number(15,2)更改为保存3位小数。     
 (2)或者直接更改数据库:(可视化操作sqlserver不行)
 alter table [泛普OA系统].[dbo].[formtable_main_2]
   alter column f1 decimal(15,3);
 
流程基本信息管理代码文件:WFManager.java文件,5.0与6.0在流程字段上不一样。
对页面右键的更改:相应的右键上,加上了日志记录的管理:
RCMenu += "{"+SystemEnv.getHtmlLabelName(83,user.getLanguage())+",/systeminfo/SysMaintenanceLog.jsp?sqlwhere=where operateitem="+16+",_self} " ;
    RCMenuHeight += RCMenuHeightStep ;
此处sqlwhere条件目前是角色管理的日志管理,不是对应的权限设置的管理!

 
7/18
         工作流程模块:
                   自定义查询需要 系统管理员定义过,而且需要自己走过流程  才能看到相应界面。
                   流程存为文档:1、自动:(流程存为文档存放路径,所有者,然后在节点后附加操作上增加相应接口(自带的))2、手动(流程存为文档存放路径,所有者,然后在流程存为模板模块打钩存为文档。)
         对报表设置的参数查询:定义参数,
        
         高级设置:流程创建文档,主要用于收发文流程,
         数据出口(子流程):重新生成文档的话:如果打钩,则原来的文档会重新拷贝一份,这样每个人都会单独的文档,
字段拆分:是要促发给n个人,根据某一个字段,拆分成n个流程发。
流程转计划任务:就算出差,也是有任务的,跟子流程设置类似,
签章套红
 
7/19/11
         浙商银行权限组日志bug修改:首先,更改【设置中心】-【权限设置】-CRM权限组页面,右键无【日志】选项,并且单个权限组点进去,显示的是所有的日志情况,不符,应该改成和【角色设置】一样。
修改: 打开SystemRightGroup.jsp页面,在对应页面放置右键处地方,加上 ‘日志’功能:
RCMenu += "{"+SystemEnv.getHtmlLabelName(83,user.getLanguage())+",/systeminfo/SysMaintenanceLog.jsp?sqlwhere=where operateitem="+28+",_self} " ;
RCMenuHeight += RCMenuHeightStep ;
在对应单个权限组中,修改,只显示对应日志,而不是全部:
if(HrmUserVarify.checkUserRight("SystemRightGroup:Log",user)){
    if(rs.getDBType().equals("db2")){
    RCMenu += "{"+SystemEnv.getHtmlLabelName(83,user.getLanguage())+",/systeminfo/SysMaintenanceLog.jsp?sqlwhere=where int(operateitem)=28 and relatedid="+id+",_self} " ;// and relatedid="+id+ write by me 7.18
    }else{
     RCMenu += "{"+SystemEnv.getHtmlLabelName(83,user.getLanguage())+",/systeminfo/SysMaintenanceLog.jsp?sqlwhere=where operateitem=28 and relatedid="+id+",_self} " ;// and relatedid="+id+ write by me 7.18
 
    }
泛普办公系统OA流程模块知识研读:
    在新建流程的时候,转到RequestType.jsp页面,点击对应流程,到达AddRequest.jsp页面,传递的参数为workflowid,和isagent(是否代理);通过workflowid找到我们对应的流程(此处,以我新建的表单与路径作为测试依据),查数据库可以发现,每一个节点,对应一条数据库信息。若有传messageType,则表示需要短信提醒;
    流程表单填写内容页面为WorkflowAddRequestBodyAction.jsp,
对部门的浏览:
http://127.0.0.1:8080/hrm/company/DepartmentBrowser.jsp
7/20/11
在DepartmentBrowser.jsp中,DepartmentSingleXML.jsp用于解析xml(事先定义)。
客户浏览:
http://127.0.0.1:8080/CRM/data/CustomerBrowser.jsp
依次类推,以下页面就不再修改显示。
项目浏览:文档浏览:资产浏览:多人力资源浏览;
浏览按钮基本都是*Browser.jsp,ctrl+shift+R可以快速找到对应的页面。
 
7/21/11
   泛普企业OA办公系统 Finereport报表设计:
    右键形态,可以解决实际值与显示值不一样的效果,同时,通过这个,可以在条件属性上, 控制分页设置。
绘制的图表要预览后才能正确显示,编辑处无法显示出来。
    部署泛普OA系统6源码,将class文件反编译成java文件,修改错误,myeclipse跑起系统。
    Myeclipse查看快捷键方式:ctrl+shift+L可以查看myeclipse所有操作的快捷键,以下是几个常用:
Ctrl+shift+R/T查找相关文件(匹配文件名)
Ctrl+alt+G  find text in workspace
Ctrl+H 全文搜索
Ctrl+Q  上次编辑的地方
    页面是否有权限查看,通过HrmUserVarify.checkUserRight("CptCapital:Display",user)方式进行判断用户是否有权限。没有,则返回response.sendRedirect("/notice/noright.jsp") ;
 
泛普协同办公OA人力资源:
    User.java文件代表人力信息,loginType 登录类型  1:内部用户,2:外部用户,
    后台通过setLoginid(String key)设置登陆账号信息。存于HrmResource表信息中。
    若是外部用户,通过CRM_CustomerInfo表信息查找。
    一些生日提醒,密码修改提醒,个人信息修改等功能在泛普OA系统.hrm.settings文件夹下设置。
 
    Track类跟踪了流程的一系列信息。
 
7/22/11
    Workflow_requestbase:
在新建流程时候创建一条记录,批准,提交后,只是改变status,lastoperator,lastnodeid,currentnodeid。
在sqlserver里示范记录:
/*字段管理*/
select *from 泛普OA系统_5.dbo.workflow_formdict where fieldname='yyy';/*工作字段字典表,字段管理主字段对应的表*/
select *from 泛普OA系统_5.dbo.workflow_formdictdetail;/*工作字段字典表,字段管理的明细字段对应的表*/
/*表单管理*/
select * from workflow_bill  order by id asc;
select *from HtmlLabelIndex order by id desc;
select * from workflow_billfield where billid =-8;
select *from HtmlLabelInfo;
select *from 泛普OA系统_5.dbo.workflow_formdetail;/*表单明细表,(字段管理上新建的明细字段会管理在此表上),表单管理没用到*/
select * from 泛普OA系统_5.dbo.workflow_formbase order by id desc;/*系统默认表单吧,没有用到*/
select * from 泛普OA系统_5.dbo.Workflow_billdetailtable; /*单据明细表*/
select *from formtable_main_8;/*自定义表单*/
/*流程管理*/
select *from workflow_type;/*流程类型*/
select * from 泛普OA系统_5.dbo.workflow_base order by id desc;/*路径设置对应的表,当设置节点信息后,与workflow_flownode表进行关联*/
select * from 泛普OA系统_5.dbo.workflow_flownode order by nodeid desc;/*nodetype即表示四种节点类型:创建,审批,提交,归档*/
select * from  workflow_groupdetail order by id desc;/*节点操作者组操作者类型信息表*/
select * from  workflow_nodegroup order by nodeid desc;/*工作流节点操作者组信息表*/
select * from  workflow_nodeform order by nodeid desc;/*工作流节点字段表,看当前字段是否可见,可编辑,必须输入*/
select * from  workflow_NodeFormGroup order by nodeid desc;
select * from  泛普OA系统_5.dbo.workflow_nodelink order by id desc;/*节点出口信息关联表,包含节点id,出口名称,前一节点*/
select * from  泛普OA系统_5.dbo.workflow_nodebase order by id desc;/*其id关联workflow_flownode的nodeid字段*/
select * from 泛普OA系统_5.dbo.workflow_form;/*新建请求的时候,主要看此表单*/
select *from  workflow_addinoperate;
select *from workflow_formdetail;
select * from 泛普OA系统_5.dbo.Workflow_requestbase order by requestid desc;
/*与上一条记录进行比较
10,35,1,37,2,财务经理批准,0,1, ,5,,,3,2011-7-22,10:03,0,0,0,-1,-1,,,5,0,,0,
*/
 
select * from 泛普OA系统_5.dbo.workflow_currentoperator order by requestid desc;/*记录当前请求状态,并查找下一节点的操作者*/
select * from 泛普OA系统_5.dbo.workflow_formdetailinfo;/*未用到*/
/*人力资源*/
select *from 泛普OA系统_5.dbo.HrmResource;
泛普办公OA软件通过走主要流程,说明:
         新建一个表单:(form_operation.jsp)
1、 自定义表单都被insert到workflow_bill 中(select * from workflow_bill order by id asc;),表名通过HtmlLabelIndex表才能找到,也就是说:自定义表单的表名被插入标签表中,而表单中是通过标签表索引记录。并且id是-的,越来越小。
2、 自定义表单的详细信息,是formtable_main_(id)来记录。(在插入字段之前,该表只有两个字段,一个id,一个requestid)
3、 添加字段后,会将相应字段信息存入workflow_billfield表中,字段会在formtable_main_(id)表中体现出来。明细表记录在Workflow_billdetailtable表中。
路径设置:
1、 新建流程类型:对应插入workflow_type
2、 路径设置,添加一个流程,对应插入workflow_base,记录流程基本信息。
3、 加入节点信息后,对应插入workflow_flownode表中。Nodeid会一直加上去,nodetype的0表示创建,3表示归档。
4、 节点操作者添加后,会在workflow_nodegroup中添加记录,并在workflow_groupdetail添加相应的记录。对应页面wf_operation.jsp上修改。两张表通过:groupdetail的groupid对应的nodegroup的id。节点是否可编辑通过对应workflow_nodeform的nodeid查看。
5、 出口信息:下7.26接
暂时待续。。。 7/22/11
 
 
7/25
 
对资产查询:<button class=Browser onClick="onShowCapitalid()"></button>
修改KucunSearch.jsp页面,修改173行!
 
7/26
    接22日。
6、 出口信息:保存出口信息后,workflow_nodelink表相应插入对应记录,
7、 功能管理:对应workflow_function_manage表,retract字段表示强制收回的情况:0表示不可收回,1:查看前收回,2:查看后收回。
8、 流程计划表结构文档还未改变。
 
5/27
    调整协作区界面:cowork/CoworkViewFrame.jsp页面调整比例大小,在CoworkList.jsp页面上更改显示的字段,将显示的时间去掉()。在coworkview.jsp页面中更改文本框高度和一些空格。
   
 
7/28
    问题:FreeFieldOperation.jsp页面上第四行,无法找到class="泛普OA系统.cpt.capital.CapitalModifyFieldComInfo"文件,无法保存修改信息。;‘
(向蒋晋确认代码)
 
今日所做:
医惠科技项目清单列表修改:在搜索出的项目列表中,添加自定义项目字段。所做修改页面如下:
ListProjectFreeField.jsp
EditFreeeField.jsp
FreeFieldOperation.jsp
通过字段编辑,项目清单显示即在searchResult.jsp页面上根据sql,col分页表格可以修改,动态添加和删除。
    对添加项目页面进行修改:addProject.jsp页面,讲左边的相关附件  放到右边其他信息上面。ViewProject.jsp页面也是如此。
对出入库库存查询的报表进行修改,在数据库服务器中安装了finereport,潜在问题:finereport需要付费,每一个星期,会中断报表服务器一次。
对文档的已阅进行开发。
 
7/29
    1、根据昨日医惠科技需求,将项目清单顺序修改,searchResult.jsp页面根据col列表分页显示。
    2、将项目卡片显示页面附件列表顺序修改,ViewProject.jsp页面。
    3、附件添加js,addannewRow()函数根据table的id来确定。横线通过class=”line”显示。
    4、我的知识中,增加已阅文档板块,修改页面docSearchview.jsp页面,在if(isNew.equals(“yes”)){}…增加else模块。(有两处,第二处修改起作用)
 
 
 
 
 
 
 
发布:2006-04-24 15:11    编辑:泛普软件 · admin    [打印此页]    [关闭]
相关文章:

泛普OA系统二次开发其他应用

泛普OA商务合同 泛普OA需求调研 泛普OA实施方案 泛普OA项目启动 泛普网络硬件配置 泛普OA部署安装 泛普流程模板表单 OA系统二次开发 泛普常见问题解决 泛普OA操作手册 泛普软件项目验收 泛普培训推广上线 泛普OA售后服务 泛普新闻 泛普期刊 泛普博客