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
系统功能简介
作为二次开发用户,非常关心该系统的扩展性,以下为系统的技术平台介绍:
J.Office 办公平台技术架构
一、框架技术整合及介绍
本框架基于 JEE技术平台,整合大部分流行的开源成熟的技术,并且较好融合在一起,组成功能强大的开发平台,并且容易升级扩展,因此,可以保证开发系统的质量,同样可以应付不断变化的业务需求。
技术特点:
开发快速稳定
功能强大
升级容易
整合技术:
二、规范代码
如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
三、系统实施拓扑结构
简单类型:
复杂类型:
四、 开发环境
五、企业搜索引擎
-
Compass + lucene
-
快速构建文档及数据库的索引
-
查询索引
六、工作流引擎
工作流包括以下几部分:
在线流程设计
任务表单设计
任务分配
任务代办
任务会签
人员组织结构
在线流程设计器示例1:
在线流程设计器示例2:
流程任务人员及表单设置
任务人员设置
通过界面进行人员指定
-
设置为流程启动者
-
设置为某个具体的人
-
设置为流程启动者的上司
-
设置为某个角色的用户
通过在任务表单设置
流程表单设计
提供可视化的表单设计工具
提供模板(Velocity)代码编写功能
最终显示效果如下所示:
复杂的表单设计最终效果:
任务表单模板示例代码
- Ext.MyForm=Ext.extend(Ext.form.FormPanel ,{
- xtype:"formpanel",
- title:"task info",
- labelWidth:100,
- labelAlign:"left",
- layout:"form",
- width:400,
- height:196,
- padding:"10px",
- initComponent: function(){
- this.items=[
- {
- xtype:"textarea",
- name:"MyField",
- fieldLabel:"notes",
- anchor:"100%",
- height:120
- }
- ]
- Ext.MyForm.superclass.initComponent.call(this);
- }
- })
Ext.MyForm=Ext.extend(Ext.form.FormPanel ,{xtype:"formpanel",title:"task info",labelWidth:100,labelAlign:"left",layout:"form",width:400,height:196,padding:"10px",initComponent: function(){this.items=[{xtype:"textarea",name:"MyField",fieldLabel:"notes",anchor:"100%",height:120}]Ext.MyForm.superclass.initComponent.call(this);}})
流程运行效果图:
任务人员分配代码示例
-
- taskService.assignTask(task.getId(), "张三");
-
-
- taskService.addTaskParticipatingUser(task.getId(),"张三,李四",Participation.CANDIDATE);
-
-
- taskService.addTaskParticipatingGroup(task.getId(), "经理", Participation.CANDIDATE);
//分配某人来执行该任务taskService.assignTask(task.getId(), "张三");//分配某些人员作为侯选的执行人员taskService.addTaskParticipatingUser(task.getId(),"张三,李四",Participation.CANDIDATE);//分本某用户组作为该任务的侯选执行人员taskService.addTaskParticipatingGroup(task.getId(), "经理", Participation.CANDIDATE);
任务待办
会签任务示例代码:
-
-
-
-
-
- public void newTask(String parentTaskId,String assignIds){
-
- TaskServiceImpl taskServiceImpl=(TaskServiceImpl) taskService;
- Task parentTask=taskServiceImpl.getTask(parentTaskId);
- if(assignIds!=null){
- String []userIds=assignIds.split("[,]");
- for(int i=0;i<userIds.length;i++){
- TaskImpl task=(TaskImpl)taskServiceImpl.newTask(parentTaskId);
- task.setAssignee(userIds[i]);
- task.setName(parentTask.getName() + "-" + (i+1));
- task.setActivityName(parentTask.getName() );
- task.setDescription(parentTask.getDescription());
-
- taskServiceImpl.saveTask(task);
- }
- }
- }
/*** 创建新的任务* @param parentTaskId 父任务 ID* @param assignIds 任务执行人IDs*/public void newTask(String parentTaskId,String assignIds){TaskServiceImpl taskServiceImpl=(TaskServiceImpl) taskService;Task parentTask=taskServiceImpl.getTask(parentTaskId);if(assignIds!=null){String []userIds=assignIds.split("[,]");for(int i=0;i<userIds.length;i++){TaskImpl task=(TaskImpl)taskServiceImpl.newTask(parentTaskId);task.setAssignee(userIds[i]);task.setName(parentTask.getName() + "-" + (i+1));task.setActivityName(parentTask.getName() );task.setDescription(parentTask.getDescription());//保存taskServiceImpl.saveTask(task);}}}
七、报表引擎
Jasper Report
IReport 报表工具
报表示例一:
报表示例二:
IReport 3.6 报表设计工具
上传报表模板后,显示效果如下:
八、安全管理
- 基于角色统一授权管理
- 功能粒度的权限管理
- 单点登录(SSO)
- 数据级别
- 用户密码Sha-256加密存储
- 用户授权访问系统功能
- 验证码
用户角色设置:
角色权限设置:
九、快速开发平台
开发平台整合
代码加速器
利用Ant任务快速生成功能开发的基本框架,仅需要调整界面即可:
生成Model
Action
Dao
Service
UI Js
配置文件