4.3.2 功能设计
创建采购单功能:
操作步骤:
员工登陆系统
点击“创建采购单”,打开创建采购单页面
填写采购单信息(这里创建采购单可能会很复杂,比如分为三步创建)
填写采购单第一步:填写采购单基本信息
填写采购单第二步:填写采购明细信息(确定采购物品类型。。。) 保存采购单(确定启动activiti流程)
操作后置条件(大多数是数据库操作): 操作1 向采购单表中插入一条记录
操作2 操作activiti的api启动流程(activiti和业务系统整合功能) 上边操作1和操作2在一个事务。
提交采购单功能:
提交采购单表示采购单不再修改了。 操作步骤: 员工登陆系统 查询待提交采购单 提交采购单 后置条件: 这里不用采用原始系统的方法更新采购单表的状态。 将流程推进功能交给activiti来完成。 调用 activiti的api将流程向后推进一步.
调用taskService.complete(taskid) 将流程向后推进一步
部门经理审核采购单提交: 操作步骤:
进入待审核列表 进入审核页面 填写审核信息 提交审核信息
后置条件: 向采购单审核表pur_bus_order_audit插入一条记录 调用taskService.complete(taskid) 将流程向后推进一步
4.3.3 小结
对于activiti管理的业务流程,进行功能设计 时需要和activiti整合问题。
1、需要考虑哪个功能和流程启动操作对应的,即哪个功能执行后流程即将 启动 2、考虑哪些功能将业务流程向后推进一步
5 创建采购单
5.1 需求
功能需求:
员工在企业进行采购,需要首先创建一个采购单,员工创建完成采购单要经过三级审批。 操作步骤:
1、员工登陆系统
2、点击“创建采购单”,打开创建采购单页面 3、填写采购单信息 4、保存采购单
后置条件: 向采购单表中插入一条记录 操作activiti的api启动一个流程实例
5.2 设计实现
5.2.1 dao
向采购单表中插入一条记录
调用mybatis的mapper向采购单表pur_bus_order插入一条记录
5.2.2 service
接口功能:保存采购单,添加一个新的采购单
接口参数:采购单信息(OrderCustom扩展对象),userId 接口实现:
向采购单表中插入一条记录 操作activiti的api启动一个流程实例 获取采购单id当成businessKey,使用businessKey启动一个流程实例 Public void saveOrder(String userId,OrderCustom orderCustom){ //调用mapper向采购单表中插入一条记录 //流程定义的key从配置文件获取 String processDefinitionKey = “”; //获取采购单id String businessKey = “采购单id”; //调用activiti的api启动一个流程实例 runtimeService
}
.startProcessInstanceByKey(processDefinitionKey, businessKey);
在applicationContext-service.xml配置:
5.2.3 action
关注:用户的请求和响应。 1、 创建采购单页面方法
响应一个jsp页面(填写采购单信息)
2、 保存填写采购单信息方法(参数:使用包括对象(包括orderCustom))
调用service:createOrder(OrderCustom orderCustom) 请求采购单信息
响应到采购单处理列表
5.2.4 页面
采购单信息页面:
5.2.5 测试
创建采购单测试目标:
1、 检查业务系统采购单表是否添加了新记录
2、 检查activiti中是否启动一个新流程实例
测试步骤:
1、 部署流程定义 2、 创建采购单
6 查询待提交采购单
6.1 需求
员工创建采购单完成,在确定采购单不再修改,执行提交采购单,员工首先查询出待提交的采购单。
查询内容:任务id、任务名称、任务负责人、采购单名称、采购金额。
6.2 实现
6.2.1 dao
查询数据库采购单表,得到待提交 的采购单,由于原来采购单状态字段为空,无法查询出待提交的采购单。 不用实现dao,通过activiti的提供api查询出待提交的采购单。
6.2.2 service
通过activiti的提供api查询出待提交的采购单。
接口功能:采购单待处理任务列表
接口参数:任务负责人 接口内容: