//package com.zcxk.test;
//
//import lombok.extern.slf4j.Slf4j;
//import org.activiti.engine.*;
//import org.activiti.engine.repository.Deployment;
//import org.activiti.engine.repository.ProcessDefinition;
//import org.activiti.engine.runtime.ProcessInstance;
//import org.activiti.engine.task.Task;
//import org.activiti.engine.task.TaskQuery;
//import org.junit.Before;
//import org.junit.Test;
//
//import java.io.*;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//@Slf4j
//public class TestProcess {
//
//    RepositoryService repositoryService;
//    RuntimeService runtimeService;
//    TaskService taskService;
//    @Before
//    public void initProcessEngine(){
//        //创建引擎配置对象
//        ProcessEngineConfiguration configration = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
//
//        //创建流程引擎对象
//        //目标生成数据库表
//        configration.setJdbcUrl("jdbc:mysql://114.135.61.188:33306/operation_manager?characterEncoding=utf8");
//        configration.setJdbcDriver("com.mysql.jdbc.Driver");
//        configration.setJdbcUsername("root");
//        configration.setJdbcPassword("100Zone@123");
//        //设置表的生成策略
//        configration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//        configration.setActivityFontName("宋体");
//        configration.setLabelFontName("宋体");
//        ProcessEngine processEngine = configration.buildProcessEngine();
//
//        System.out.println(processEngine.getName());
//        repositoryService=processEngine.getRepositoryService();
//        runtimeService=processEngine.getRuntimeService();
//        taskService=processEngine.getTaskService();
//    }
//    /* 按行读对于要处理的格式化数据是一种读取的好方式 */
//    private static String readBPMNcontent(String path)
//    {
//        int len=0;
//        StringBuffer str=new StringBuffer("");
//        File file=new File(path);
//        try {
//            FileInputStream is=new FileInputStream(file);
//            InputStreamReader isr= new InputStreamReader(is);
//            BufferedReader in= new BufferedReader(isr);
//            String line=null;
//            while( (line=in.readLine())!=null )
//            {
//                if(len != 0) // 处理换行符的问题
//                {
//                    str.append(line);
//                }
//                else
//                {
//                    str.append(line);
//                }
//                len++;
//            }
//            in.close();
//            is.close();
//        } catch (IOException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
//        return str.toString();
//    }
//
//    @Test
//    public void deploy() throws UnsupportedEncodingException {
//        String key="777";
//        String tenantId="first";
//        String path="D:\\迅雷下载/主工单.bpmn20.xml";
//        String content=readBPMNcontent(path);
//        content=new String(content.getBytes(),"utf-8");
//       Deployment deployment = repositoryService// 获取流程定义和部署对象相关的Service
//                .createDeployment()// 创建部署对象
//                .addString(key + ".bpmn", content).
//                        tenantId(tenantId).deploy();// 完成部署
//     System.out.println(deployment.getId()+"------"+deployment.getName());
//
//    }
//    @Test
//    public void findDefine(){
//        List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list();
//        list.forEach(processDefinition -> {
//            System.out.println(processDefinition.getKey()+"----"+processDefinition.getVersion()+"========"+processDefinition.getId());
//        });
//
//    }
//    @Test
//    public void startProcess(){
//
//        ProcessInstance process = runtimeService.startProcessInstanceByKeyAndTenantId("mainprocess","first");//17501
//        log.info("pid:{},activityId:{},pdid:{}",process.getId(),process.getActivityId(),process.getProcessDefinitionId());
//    }
//    @Test
//    public void selectTasks(){
//        List<Task> list = taskService.createTaskQuery().taskUnassigned().list();
//        list.forEach(task -> {
//            log.info(task.toString());
//        });
//    }
//    @Test
//    public void startProcessByUser(){
//        Map<String,Object>args=new HashMap<>();
//        args.put("leader","test");
//        ProcessInstance process = runtimeService.startProcessInstanceByKeyAndTenantId("process2",args,"first");//17501
//        log.info("pid:{},activityId:{},pdid:{}",process.getId(),process.getActivityId(),process.getProcessDefinitionId());
//    }
//    @Test
//    public void selectTaskByUser(){
//        String user="test";
//        List<Task> test = taskService.createTaskQuery().taskAssigneeLike("%test%").list();
//       test.forEach(task -> {
//           System.out.println(task);
//       });
//
//    }
//    @Test
//    public void compelete(){
//        String id="160011";
//        Map<String, Object> variables = taskService.getVariables(id);
//        variables.put("someVariableInMainProcess",135001);
//        variables.put("flag",'2');
//        taskService.setVariables(id,variables);
//        Object mainId = taskService.getVariable(id, "someVariableInMainProcess");
//        taskService.complete(id);
//    }
//}
