ludc
2025-01-16 986aa62ed00bee39363bab41b4eeb8259d446efd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.vci.server.workflow.server.ExImp;
 
import java.sql.SQLException;
import java.util.List;
 
import org.hibernate.SQLQuery;
 
import com.vci.common.log.ServerWithLog4j;
import com.vci.server.base.persistence.dao.HibernateSessionFactory;
import com.vci.server.workflow.common.resouce.WorkflowProperties;
import com.vci.server.workflow.server.interfaces.IWorkflowUserService;
 
public class ExAssginImp {
 
    private String processInstansId;
    private String taskName;
    private static String userServiceImplClass = WorkflowProperties.getStringProperty("workflow.userService");
    private static IWorkflowUserService puService;
 
    public ExAssginImp() {
    }
 
    public ExAssginImp(String processInstansId, String taskName) {
        this.processInstansId = processInstansId;
        this.taskName = taskName;
    }
 
    /**
     * @author ld 2013-7-19 通过流程模板、流程数据ID、流程任务名称,获取该流程任务的用户。
     * @param deploymentId
     * @param dataIds
     * @param taskName
     * @return
     * @throws Exception
     */
    public String[] userList(String processInstansId, String taskName) throws Exception {
        ServerWithLog4j.logger.debug("用户和任务关系类==================");
 
        String sql = "select a.username from  JBPM4_TASKANDUSERCONFIGEX a where a.PROCESSINSTANSID = ? and a.taskname = ?";
 
        String userName = "";
        String[] res = null;
        try {
            HibernateSessionFactory.getSession().flush();
            SQLQuery sqlquery = HibernateSessionFactory.getSession().createSQLQuery(sql);
            sqlquery.setString(0, processInstansId);
            sqlquery.setString(1, taskName);
            List list = sqlquery.list();
            if (list.size() > 0) {
                userName = String.valueOf(list.get(list.size() - 1));
            }
 
            if (userName != null) {
                String[] users = userName.split(",");
                // 如果配置了用户选择插件,则执行以下操作
                if (userServiceImplClass != null && !"".equals(userServiceImplClass)) {
                    res = getIworkFlowUserServiceInstance().getAllUsers2Task(users, "");
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
            ServerWithLog4j.logger.error(e);
        }
        return res == null ? new String[] {} : res;
    }
 
    private static IWorkflowUserService getIworkFlowUserServiceInstance()
            throws InstantiationException, IllegalAccessException, ClassNotFoundException {
        if (puService == null) {
            puService = (IWorkflowUserService) (Class.forName(userServiceImplClass).newInstance());
        }
        return puService;
 
    }
}