Commit dc0c359f authored by shyWang's avatar shyWang

PDM前端改造

模拟选人
parent 22221641
package com.yonde.wfc.service; package com.yonde.wfc.service;
import com.yonde.basedata.entity.api.ApiResult;
import com.yonde.basedata.search.SearchOperatorEnumUtil; import com.yonde.basedata.search.SearchOperatorEnumUtil;
import com.yonde.basedata.vo.IdVO; import com.yonde.basedata.vo.IdVO;
import com.yonde.change.vo.ecn.DxChangeNoticeVo; import com.yonde.change.vo.ecn.DxChangeNoticeVo;
import com.yonde.change.vo.ecr.DxChangeRequestVo; import com.yonde.change.vo.ecr.DxChangeRequestVo;
import com.yonde.change.vo.pr.DxProblemReportVo; import com.yonde.change.vo.pr.DxProblemReportVo;
import com.yonde.common.ObjectsUtil; import com.yonde.common.*;
import com.yonde.common.RfUtil;
import com.yonde.common.WTUserUtil;
import com.yonde.common.WorkflowUtil;
import com.yonde.doc.vo.DxDocumentVO; import com.yonde.doc.vo.DxDocumentVO;
import com.yonde.part.vo.DxPartVO; import com.yonde.part.vo.DxPartVO;
import com.yonde.wfc.vo.DxWfProcessSearchVO; import com.yonde.wfc.vo.*;
import com.yonde.wfc.vo.DxWfProcessTaskVO;
import com.yonde.wfc.vo.DxWfProcessVO;
import com.yonde.wfc.vo.DxWfTaskOperationArgsVO;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import wt.change2.WTChangeIssue; import wt.change2.WTChangeIssue;
import wt.change2.WTChangeOrder2; import wt.change2.WTChangeOrder2;
import wt.change2.WTChangeRequest2; import wt.change2.WTChangeRequest2;
import wt.doc.WTDocument; import wt.doc.WTDocument;
import wt.fc.ObjectReference;
import wt.fc.Persistable; import wt.fc.Persistable;
import wt.fc.QueryResult; import wt.fc.QueryResult;
import wt.fc.WTObject; import wt.fc.WTObject;
...@@ -27,16 +23,17 @@ import wt.method.RemoteAccess; ...@@ -27,16 +23,17 @@ import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer; import wt.method.RemoteMethodServer;
import wt.org.WTUser; import wt.org.WTUser;
import wt.part.WTPart; import wt.part.WTPart;
import wt.project.Role;
import wt.session.SessionContext; import wt.session.SessionContext;
import wt.session.SessionHelper; import wt.session.SessionHelper;
import wt.util.WTException; import wt.util.WTException;
import wt.workflow.engine.ProcessData;
import wt.workflow.engine.WfActivity;
import wt.workflow.engine.WfProcess; import wt.workflow.engine.WfProcess;
import wt.workflow.work.WorkItem; import wt.workflow.work.WorkItem;
import wt.workflow.work.WorkflowHelper; import wt.workflow.work.WorkflowHelper;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Vector;
public class WfcProcessService implements RemoteAccess { public class WfcProcessService implements RemoteAccess {
...@@ -297,6 +294,41 @@ public class WfcProcessService implements RemoteAccess { ...@@ -297,6 +294,41 @@ public class WfcProcessService implements RemoteAccess {
return dxWfProcessTaskVO; return dxWfProcessTaskVO;
} }
public static List<DxWfTeamVO> getNextTeamParticipantSetList(String activityId) throws Exception{
if (!RemoteMethodServer.ServerFlag) {
return (List<DxWfTeamVO>)RemoteMethodServer.getDefault().invoke("getNextTeamParticipantSetList", WfcProcessService.class.getName(), null,
new Class[] { String.class },
new Object[] { activityId });
}
CommonUtil.initSessionContext(null);
List<DxWfTeamVO> resultList = new ArrayList<DxWfTeamVO>();
WfActivity activity = (WfActivity) RfUtil.getWTObjectByOid("OR:wt.workflow.work.WfAssignedActivity:" + activityId);
ProcessData context1 = activity.getContext();
String needRoles = (String) context1.getValue("needRoles");
String mustRoles = (String) context1.getValue("mustRoles");
if (ObjectsUtil.nonNull(mustRoles)) {
String[] mustList = mustRoles.split(",");
for (String roleKey : mustList) {
Role role = Role.toRole(roleKey);
if (ObjectsUtil.nonNull(role)) {
DxWfTeamVO dxWfTeamVO = new DxWfTeamVO(role, true);
resultList.add(dxWfTeamVO);
}
}
}
if (ObjectsUtil.nonNull(needRoles)) {
String[] needList = needRoles.split(",");
for (String roleKey : needList) {
Role role = Role.toRole(roleKey);
if (ObjectsUtil.nonNull(role)) {
DxWfTeamVO dxWfTeamVO = new DxWfTeamVO(role, false);
resultList.add(dxWfTeamVO);
}
}
}
return resultList;
}
/** /**
* 完成待办 * 完成待办
* @param operationArgsVO * @param operationArgsVO
...@@ -328,6 +360,24 @@ public class WfcProcessService implements RemoteAccess { ...@@ -328,6 +360,24 @@ public class WfcProcessService implements RemoteAccess {
if (ObjectsUtil.nonNull(routerSelect)) { if (ObjectsUtil.nonNull(routerSelect)) {
vector = WorkflowUtil.toVector(routerSelect); vector = WorkflowUtil.toVector(routerSelect);
} }
//设置选人
Map<String, Object> participants = operationArgsVO.getParticipants();
if (ObjectsUtil.nonNull(participants)) {
Set<String> roleKeys = participants.keySet();
WfProcess process = WorkflowUtil.getWfProcess(workItem);
for (String roleKey : roleKeys) {
List userNameList = (List) participants.get(roleKey);
List userList = new ArrayList();
if (ObjectsUtil.nonNull(userNameList)) {
for (Object userInfo : userNameList) {
WTUser user = WTUserUtil.getUser((String) userInfo);
userList.add(user);
}
}
WorkflowUtil.assignUsersToWfRole(process,userList,roleKey);
}
}
//完成待办
WorkflowUtil.completeTask(workItem,vector,description); WorkflowUtil.completeTask(workItem,vector,description);
return; return;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment