舌头起泡怎么办:JAVA OA-J.Office 1.3 发布了 - man1900 - JavaEye技术网站

来源:百度文库 编辑:九乡新闻网 时间:2024/03/29 18:53:45

JAVA OA-J.Office 1.3 发布了

文章分类:Web前端

J.Office 1.3 版本正式对外发布了,用户可以下载试用,宏天软件也如从前一样,对企业用户开放所有的源代码,方便企业用户基于上面进行二次开发,并且二次开发系统所有权属于企业本身,唯一的是企业需要购买该软件的授权开发的License。

     相对1.2版,1.3版作了以下更新:


1. 工作流改进,更新工作扩展,使其支持同步任务,会签任务。
2.  加上在线工作流设计器
3. 加上EXT的任务表单设计器
4. 加上公文管理,支持发文及收文流程。同时提供催办功能
5. 加上人力资源管理,支持员工档案及薪酬管理等功能。
6. 加上系统换肤功能
7.   改善首页加载左菜单的性能及其他js的下载性能
8.   修正一些样式的显示

 

在线试用访问地址:

      用户:csx 密码:111
      网通:
http://oa.jee-soft.cn:8080/index.jsp
      电信:
http://office.jee-soft.cn:8080/index.jsp (广东省以外电信用户)

      或
     
http://oa.jee-soft.cn/index.jsp
     
http://office.jee-soft.cn/index.jsp

 

 

       下载试用地址: http://bbs.jee-soft.cn/posts/list/4.page

 

 

 系统功能简介

  • 1. 系统采用纯J2EE平台开发,是基于Struts,Spring,JBPM4,EXT3,JasperReport,Lucene,Compass等优秀 开源技术的整合。支持windows、Linux、Unix平台运行。数据库支持Oracle、Sql server、Mysql、 DB2等多种数据库,文档支持全文搜索。
  • 2. 支持任意多级部门、成员单位模式,灵活定义角色权限,全面面向集团应用。
  • 3. 采用功能强大的Jasper Report报表引擎,允许自定义报表及上传报表模板。
  • 4. 内置工作流系统,流程自定义,工作流可视化操作,自由流程,无限制嵌套流程运转(可定义任何复杂流程)。并能清晰直观查看任务执行状态,实时了解工作任务的办理情况。
  • 5. 集成公告、新闻、内部邮件、外部邮件、短信、手机短信、文件柜、聊天室、论坛等模块,提供企业内部信息交流的多种途径。
  • 6. 集成人事管理、员工考核、员工考勤、办公用品、通讯簿、日程管理、工作计划、会议管理、车辆管理、客户关系管理等模块,提供企业管理者全新的管理工具。
  • 7流程自定义、表单自定义、全文批注、手写签名、电子印章、网上审批、是依法行政,提高行政效率的高效工作平台。
  • 8. 通过系统访问控制、系统安全设置、系统资源管理,确保系统稳定安全运行。

作为二次开发用户,非常关心该系统的扩展性,以下为系统的技术平台介绍:

 

     J.Office 办公平台技术架构

一、框架技术整合及介绍

 

      本框架基于 JEE技术平台,整合大部分流行的开源成熟的技术,并且较好融合在一起,组成功能强大的开发平台,并且容易升级扩展,因此,可以保证开发系统的质量,同样可以应付不断变化的业务需求。

 

      技术特点:

      开发快速稳定
      功能强大
      升级容易

 

      整合技术:

  • Spring 2.5
  • Struts2.0.14
  • Spring Security 2.0
  • Spring AOP
  • Hibernate 3.3 GA
  • FCK Editor 2.6
  • JBPM4.0GA
  • Compass + Lucene
  • JasperReport
  • JavaMail
  • Other: Log4j,Velocity,Sitemesh,Jfreechart,Xfire

 

 

二、规范代码
如app-user表对应为AppUser,其代码如下所示
JS UI层 
       AppUserView.js、AppUserForm.js
Action层  
       AppUserAction.java
Service层  

         AppUserService.java/AppUserServiceImpl.java
DAO 层
         AppUserDao.java/AppUserUserDaoImpl.java
Model
         AppUser.java

 

三、系统实施拓扑结构

简单类型:

 

复杂类型:

 

 

四、 开发环境

 

  • JDK 1.6 版本(Later)
  • Eclipse 3.4(Later)或 Netbean 6.8
  • Tomcat 5.5 (Later)/ (Weblogic 10 later)/GlassFish V2 Later
  • Ant 1.6 or later
  • IReport 3.6 报表开发工具

五、企业搜索引擎

  • Compass + lucene
  • 快速构建文档及数据库的索引
  • 查询索引

 

 

六、工作流引擎

 

      工作流包括以下几部分:

 

在线流程设计

任务表单设计

任务分配

任务代办

任务会签

人员组织结构

 在线流程设计器示例1:

 

在线流程设计器示例2:

 

 

流程任务人员及表单设置

 

 

 

任务人员设置

 

通过界面进行人员指定

  • 设置为流程启动者
  • 设置为某个具体的人
  • 设置为流程启动者的上司
  • 设置为某个角色的用户

通过在任务表单设置

  • 指定某个用户
  • 指定某个会签任务的人员

 流程表单设计

 

  提供可视化的表单设计工具
  提供模板(Velocity)代码编写功能

  

 

最终显示效果如下所示:

 

 

复杂的表单设计最终效果:

 

 

 任务表单模板示例代码

 

Java代码
  1. Ext.MyForm=Ext.extend(Ext.form.FormPanel ,{  
  2.     xtype:"formpanel",  
  3.     title:"task info",  
  4.     labelWidth:100,  
  5.     labelAlign:"left",  
  6.     layout:"form",  
  7.     width:400,  
  8.     height:196,  
  9.     padding:"10px",  
  10.     initComponent: function(){  
  11.         this.items=[  
  12.             {  
  13.                 xtype:"textarea",  
  14.                 name:"MyField",  
  15.                 fieldLabel:"notes",  
  16.                 anchor:"100%",  
  17.                 height:120  
  18.             }  
  19.         ]  
  20.         Ext.MyForm.superclass.initComponent.call(this);  
  21.     }  
  22. })  

 

  流程运行效果图:

 

 

 

任务人员分配代码示例

Java代码
  1. //分配某人来执行该任务  
  2. taskService.assignTask(task.getId(), "张三");  
  3.   
  4. //分配某些人员作为侯选的执行人员  
  5. taskService.addTaskParticipatingUser(task.getId(),"张三,李四",Participation.CANDIDATE);  
  6.   
  7. //分本某用户组作为该任务的侯选执行人员  
  8. taskService.addTaskParticipatingGroup(task.getId(), "经理", Participation.CANDIDATE);  

任务待办

 

  


会签任务示例代码:

 

Java代码
  1. /** 
  2.      * 创建新的任务 
  3.      * @param parentTaskId 父任务 ID 
  4.      * @param assignIds 任务执行人IDs 
  5.      */  
  6.     public void newTask(String parentTaskId,String assignIds){  
  7.           
  8.         TaskServiceImpl taskServiceImpl=(TaskServiceImpl) taskService;  
  9.         Task parentTask=taskServiceImpl.getTask(parentTaskId);  
  10.         if(assignIds!=null){  
  11.             String []userIds=assignIds.split("[,]");  
  12.             for(int i=0;i                TaskImpl task=(TaskImpl)taskServiceImpl.newTask(parentTaskId);  
  13.                 task.setAssignee(userIds[i]);  
  14.                 task.setName(parentTask.getName() + "-" + (i+1));  
  15.                 task.setActivityName(parentTask.getName() );  
  16.                 task.setDescription(parentTask.getDescription());  
  17.                 //保存  
  18.                 taskServiceImpl.saveTask(task);  
  19.             }  
  20.         }  
  21.     }