田源
2024-03-07 4b4083fd73dc27ece42f4835483565eef0e4f608
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.vci.server.workflow.server.delegate;
 
import java.util.List;
 
import com.vci.corba.common.VCIError;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.workflow.data.TaskCCInfo;
import com.vci.server.base.delegate.BaseDelegate;
import com.vci.server.workflow.objects.TaskCCSObject;
import com.vci.server.workflow.server.template.TaskCCService;
 
public class TaskCCDelegate extends BaseDelegate {
    TaskCCService service = null;
 
    public TaskCCDelegate(UserEntityInfo userEntityInfo) {
        super(userEntityInfo);
        service = new TaskCCService(this.getUserEntity());
    }
 
    public TaskCCDelegate() {
        service = new TaskCCService();
    }
 
    /**
     * 获取抄送人信息
     * @param executionid
     * @return
     * @throws VCIError
     */
    public TaskCCInfo[] getTaskCCInfos(String jbpmDeploymentId) throws VCIError {
        TaskCCInfo[] infos = new TaskCCInfo[0];
        try {
            List<TaskCCSObject> list = service.getTaskCCInfos(jbpmDeploymentId);
            TaskCCSObject[] objects = list.toArray(new TaskCCSObject[] {});
            infos = this.convertTaskCCSObjectsToTaskCCInfos(objects);
        } catch (Exception ex) {
            throw new VCIError("420001", new String[] {});
        }
        return infos;
    }
 
    /**
     * 保存抄送人信息
     * @param info
     * @return
     * @throws VCIError
     */
    public boolean saveTaskCCInfo(TaskCCInfo[] info) throws VCIError {
        boolean falg = false;
        try {
            falg = service.saveTaskCCInfo(this.convertTaskCCInfoToTaskCCSObject(info));
        } catch (Exception ex) {
            throw new VCIError("420002", new String[] {});
        }
        return falg;
    }
 
 
    /**
     * 删除抄送人信息
     * @param jbpmDeploymentId
     * @param userName TODO
     * @return
     * @throws VCIError
     */
    public boolean deleteTaskCC(String jbpmDeploymentId, String userName) throws VCIError {
        boolean res = false;
        try {
            res = service.deleteTaskCC(jbpmDeploymentId, userName);
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new VCIError("420003", new String[] {});
        }
        return res;
    }
 
    
    /************************* CORBA & HIBERNATE CONVERT **************************/
    /**
     * 对象转换(批量),从Corba对象转换到Hibernate对象
     * 
     * @param objects
     */
    private TaskCCInfo[] convertTaskCCSObjectsToTaskCCInfos(TaskCCSObject[] objects) {
        TaskCCInfo[] infos = new TaskCCInfo[objects.length];
        int i = 0;
        for (TaskCCSObject obj : objects) {
            infos[i++] = this.convertTaskCCSObjectToTaskCCInfo(obj);
        }
        return infos;
    }
 
    private TaskCCInfo convertTaskCCSObjectToTaskCCInfo(TaskCCSObject object) {
        TaskCCInfo info = new TaskCCInfo();
        info.id = object.getId() == null ? "" : object.getId();
        info.assigner = object.getAssigner() == null ? "" : object.getAssigner();
        info.cc = object.getCc() == null ? "" : object.getCc();
        info.pljbpmdeploymentid = object.getJbpmdeploymentid() == null ? "" : object.getJbpmdeploymentid();
        info.taskname = object.getTaskname() == null ? "" : object.getTaskname();
        return info;
    }
 
    private TaskCCSObject[] convertTaskCCInfoToTaskCCSObject(TaskCCInfo[] info) {
        TaskCCSObject[] objects = new TaskCCSObject[info.length];
        for(int i = 0 ; i < info.length ; i ++){
            TaskCCSObject object = new TaskCCSObject();
            object.setId(info[i].id==null?"":info[i].id);
            object.setAssigner(info[i].assigner==null?"":info[i].assigner);
            object.setCc(info[i].cc==null?"":info[i].cc);
            object.setJbpmdeploymentid(info[i].pljbpmdeploymentid==null?"":info[i].pljbpmdeploymentid);
            object.setTaskname(info[i].taskname==null?"":info[i].taskname);
            objects[i] = object;
        }
        return objects;
    }
 
}