BOS项目第11天

2019-08-21  本文已影响0人  KaveeDJ

11 BOS项目第11天

今天学习将activiti整合进BOS系统

11.1 查看流程实例列表

@Autowired
private RuntimeService rs;
@Test
public void test2(){
    //报销
    HashMap<String, Object> info = new HashMap<>();
    info.put("bxyy", "出差-广州到深圳的飞机票");
    info.put("bxje", "3688.00");
    info.put("employeeName", "wangwu");
    rs.startProcessInstanceByKey("bxlc",info);
}
@Autowired
private RuntimeService rs;
private List<ProcessInstance> list;

public List<ProcessInstance> getList() {
    return list;
}

public String list(){
    //1.查找流程实例
    ProcessInstanceQuery query = rs.createProcessInstanceQuery();
    query.orderByProcessInstanceId().desc();
    list = query.list();

    return "list";
}
<!--流程实例-->
<action name="processInstanceAction_*" class="com.kdj.bos.web.action.ProcessInstanceAction" method="{1}">
    <result name="list">/WEB-INF/pages/workflow/processinstance.jsp</result>
</action>
<td>
    <div id="div${id }"></div>
    <script type="text/javascript">
        //根据流程实例id查询流程变量
        $.post("${pageContext.request.contextPath}/processInstanceAction_findData.action",{"id":'${id}'},function(data){
            $("#div${id}").html(data);
        });
    </script>
    <script type="text/javascript">
        function showPng(id){
            window.showModalDialog("${pageContext.request.contextPath}/processInstanceAction_showPng.action?id="+id);
        }
    </script>
</td>
public void findData() throws IOException {
    Map<String, Object> data = rs.getVariables(id);
    ServletActionContext.getResponse().setHeader("content-type", "text/html;charset=utf-8");
    ServletActionContext.getResponse().getWriter().write(data.toString());
}

11.2 将运行到哪个任务显示成中文

@Autowired
private TaskService ts;
@Test
public void test3(){
    ts.complete("507");
}
image.png

11.3 同步bos系统中用户和角色到activiti

<!-- 流程引擎配置对象 -->
<bean id="processEngineConfiguration"
      class="org.activiti.spring.SpringProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource"/>
    <property name="transactionManager" ref="transactionManager"/>
    <!--让activiti框架自动创建表-->
    <property name="databaseSchemaUpdate" value="true"></property>
</bean>
//2.把角色保存到activiti的组中
Group group = new GroupEntity();
group.setId(role.getName());
group.setName(role.getName());
identityService.saveGroup(group);
image.png
//用户拥有角色
//保存到activiti的act_id_user表
org.activiti.engine.identity.User actUser = new UserEntity();
actUser.setId(model.getId()); //uuid
actUser.setFirstName(model.getUsername());
identityService.saveUser(actUser);

//用户拥有角色
for (String roleId : roleIds) {
    Role role = roleDao.findById(roleId);
    //role.setId(roleId);
    model.getRoles().add(role);

    //4.维护activiti的用户跟组的关系
    String userId = actUser.getId();
    String groupId = role.getName();
    identityService.createMembership(userId, groupId);
}

11.4 设计物流配送流程

11.5 启动配送流程

public String start(){
    //启动配送流程
    workordermanageService.start(getModel().getId());

    //返回列表界面
    return list();
}
@Override
public void start(String id) {
    //启动配送流程
    //1.根据id查找Workordermanage
    Workordermanage wom = workordermanageDao.findById(id);

    //2.把start改成1
    wom.setStart("1");

    //3.启动流程实例transfer
    //流程变量
    Map<String, Object> info = new HashMap<>();
    info.put("orderInfo", wom.toString());

    //工作单的id
    String businessId = wom.getId();
    rs.startProcessInstanceByKey("transfer", businessId, info);
}

11.6 总结

SSM
SpringMVC,Spring,MyBatis

上一篇 下一篇

猜你喜欢

热点阅读