Java中List.forEach()方法使用与实战

package com.test.activiti.service.impl;

import com.test.activiti.listener.MyExecutionListener;
import com.test.activiti.service.IMyAppService;
import com.test.common.core.page.TableDataInfo;
import com.test.system.domain.SysUser;
import com.google.common.collect.Lists;
import com.sun.javafx.collections.MappingChange;
import org.activiti.engine.HistoryService;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.runtime.ProcessInstance;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.activation.MailcapCommandMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class MyAppService implements IMyAppService {
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
@Autowired
private HistoryService historyService;
@Autowired
private MyExecutionListener myExecutionListener;

@Override
public TableDataInfo myApplyList(Integer pageNum, Integer pageSize) {
    TableDataInfo tableDataInfo = new TableDataInfo();
    Subject subject = SecurityUtils.getSubject();
    SysUser principal = (SysUser) subject.getPrincipal();
    //查询该用户的发起流程
    List <HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery()
            .startedBy(principal.getUserName())
            .listPage(pageNum - 1, pageSize);
    Long count = historyService.createHistoricProcessInstanceQuery()
            .startedBy(principal.getUserName())
            .count();
    List <Map <String, Object>> mapList = new ArrayList <>();
    list.forEach(s -> {
        Map <String, Object> map = new HashMap <>();
        map.put("name", s.getStartUserId() + "的" + s.getProcessDefinitionName());
        map.put("startTime", s.getStartTime());
        map.put("id", s.getId());//
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
                .processInstanceId(s.getId())
                .singleResult();

        if (processInstance == null) {
            map.put("status", "已完成");
        } else {
            map.put("status", "执行中");
        }
        mapList.add(map);
    });
    tableDataInfo.setRows(mapList);
    tableDataInfo.setTotal(count);

    return tableDataInfo;


}

public static void main(String[] args) {
    //使用com.google.guava包创建集合
    List <String> list = Lists.newArrayList("1", "2", "3", "4");
    //1、正常遍历
    list.forEach(item -> System.out.println(item));
    //2、根据条件遍历
    list.forEach(item -> {
        if ("2".equals(item)) {
            System.out.println(item);

        }
    });
}

}

猜你喜欢

转载自blog.csdn.net/liufeifeihuawei/article/details/113030745