文档中心 > API文档

1.6.5.1.2. 节点动作代码

package com.seeyon.ctp.workflow.devnode;
 
 import java.util.Map;
 import java.util.UUID;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import com.seeyon.ctp.common.AppContext;
 import com.seeyon.ctp.organization.bo.V3xOrgMember;
 import com.seeyon.ctp.organization.manager.OrgManager;
 import com.seeyon.ctp.organization.manager.OrgManagerDirect;
 import com.seeyon.ctp.workflow.supernode.BaseSuperNodeAction;
 import com.seeyon.ctp.workflow.supernode.SuperNodeResponse;
 
 /**
  * 跨单位调动人员节点。
  * 
  * @author 朱二阳
  * 
  */
 public class MoveMemberNodeAction extends BaseSuperNodeAction {
     private static final Log logger = LogFactory
             .getLog(MoveMemberNodeAction.class);
 
     /**
      * 节点动作撤销。
      */
     public void cancelAction(String token, String activityId) {
 
     }
 
     /**
      * 确认节点动作执行。
      */
     public SuperNodeResponse confirmAction(String token, String activityId,
             Map<String, Object> params) {
         return this.executeAction(token, activityId, params);
     }
 
     /**
      * 动作执行方法。
      * 
      * @param token
      *            外部调用节点的依据。
      * @param activityId
      *            节点实例的唯一标识。
      * @param params
      *            节点执行的上下文信息,通过CTP_FORM_DATA key可以获取表单数据。
      * @return 执行结果。
      */
     public SuperNodeResponse executeAction(String token, String activityId,
             Map<String, Object> params) {
         SuperNodeResponse response = new SuperNodeResponse();
         OrgManager orgManager = (OrgManager) AppContext.getBean("orgManager");
         OrgManagerDirect orgManagerDirect = (OrgManagerDirect) AppContext
                 .getBean("orgManagerDirect");
         Map<String, Object> data = getFormData(params);
         try {
             V3xOrgMember member = orgManager.getMemberById(Long.parseLong(data
                     .get("调出人员").toString()));
             member.setOrgAccountId(Long.parseLong(data.get("调往单位").toString()));
             member.setOrgDepartmentId(Long.parseLong(data.get("调往部门")
                     .toString()));
             member.setOrgPostId(Long.parseLong(data.get("岗位").toString()));
             member.setOrgLevelId(Long.parseLong(data.get("职务级别").toString()));
             orgManagerDirect.updateMember(member);
             response.setDataId(String.valueOf(UUID.randomUUID()
                     .getMostSignificantBits()));
             response.setReturnCode(1);
             response.setReturnMsg("跨单位调动人员节点处理成功");
         } catch (Throwable e) {
             logger.info("跨单位调动人员失败", e);
             response.setReturnCode(0);
             response.setReturnMsg("跨单位调动人员节点处理失败");
         }
 
         return null;
     }
 
     private Map getFormData(Map<String, Object> params) {
         return (Map) params.get("CTP_FORM_DATA");
     }
 
     /**
      * 节点标识。
      */
     public String getNodeId() {
         return "dev_node_move";
     }
 
     /*
      * 节点名称。
      */
     public String getNodeName() {
         return "跨单位调动人员";
     }
 
     /**
      * 选择时的显示顺序。
      */
     public int getOrder() {
         return 4;
     }
 
 }