getworkitemvariable.java

来自「公司自己开发的工作流引擎」· Java 代码 · 共 162 行

JAVA
162
字号
package cn.com.iaspec.workflow.engine.business;

import cn.com.iaspec.workflow.vo.workflow.*;
import com.sunyard.sunflow.client.*;
import com.sunyard.sunflow.engine.dataclass.*;

public class GetWorkItemVariable{
  public GetWorkItemVariable(){
  }

  /**
   * 取得工作项的相关变量信息
   * @param workItemId int
   * @param userInfo UserInfo
   * @return WMTAttribute[]
   */
  public ActivityVariable[] getWorkItemAllVariableValue(long workItemId,
      UserInfo userInfo)
      throws Exception{
    SunflowClient sunflowclient=WorkflowSession.getSunflowClient(userInfo);
    try{
      return convertToActivityVariable(sunflowclient.getWorkItemRelevantData(
          workItemId,null));
    }
    finally{
      WorkflowSession.deleteSunflowClient(userInfo);
    }
  }

  /**
   * 将ActivityVariable转化为WMTAttribute
   * @param attr WMTAttribute[]
   * @throws Exception
   * @return ActivityVariable[]
   */
  public static ActivityVariable[] convertToActivityVariable(WMTAttribute[]
      attr)
      throws Exception{
    ActivityVariable[] actVar=new ActivityVariable[attr.length];
    for(int i=0;i<attr.length;i++){
      ActivityVariable tempActVar=new ActivityVariable();
      actVar[i]=tempActVar;
      actVar[i].setAttributeName(attr[i].getAttributeName());
      actVar[i].attributeType=attr[i].attributeType;
      switch(attr[i].attributeType){
        case 4: // '\004'
          actVar[i].setStringValue(attr[i].getStringValue());
          break;

        case 8: // '\b'
          actVar[i].setFileValue(attr[i].getFileValue());
          break;

        case 3: // '\003'
          actVar[i].setDoubleValue(attr[i].getDoubleValue());
          break;

        case 1: // '\001'
          actVar[i].setIntValue(attr[i].getIntValue());
          break;

        case 2: // '\002'
          actVar[i].setBooleanValue(attr[i].getBooleanValue());
          break;

        case 6: // '\006'
          actVar[i].setDateValue(attr[i].getDateValue());
          break;

        case 5: // '\005'
          actVar[i].setTimestampValue(attr[i].getTimestampValue());
          break;

        case 10: // '\n'
          actVar[i].setBinaryValue(attr[i].getBinaryValue());
          break;

        case 7: // '\007'
          actVar[i].setArrayValue(attr[i].getArrayValue());
          actVar[i].setClassPath(attr[i].getClassPath());
          break;

        case 9: // '\t'
          actVar[i].setObjectValue(attr[i].getObjectValue());
          actVar[i].setClassPath(attr[i].getClassPath());
          break;
      }
    }
    return actVar;
  }

  /**
   * 将ActivityVariable转化为WMTAttribute
   * @param actVar ActivityVariable[]
   * @throws Exception
   * @return WMTAttribute[]
   */
  public static WMTAttribute[] convertToWMTAttribute(ActivityVariable[] actVar)
      throws Exception{
    WMTAttribute[] attr=new WMTAttribute[actVar.length];
    for(int i=0;i<actVar.length;i++){
      WMTAttribute tempAttr=new WMTAttribute();
      attr[i]=tempAttr;
      attr[i].setAttributeName(actVar[i].getAttributeName());
      attr[i].attributeType=actVar[i].attributeType;
      switch(actVar[i].attributeType){
        case 4: // '\004'
          attr[i].setStringValue(actVar[i].getStringValue()==null?"":
              actVar[i].getStringValue());
          break;

        case 8: // '\b'
          attr[i].setFileValue(actVar[i].getFileValue());
          break;

        case 3: // '\003'
          attr[i].setDoubleValue(actVar[i].getDoubleValue());
          break;

        case 1: // '\001'
          attr[i].setIntValue(actVar[i].getIntValue());
          break;

        case 2: // '\002'
          attr[i].setBooleanValue(actVar[i].getBooleanValue());
          break;

        case 6: // '\006'
          attr[i].setDateValue(actVar[i].getDateValue());
          break;

        case 5: // '\005'
          attr[i].setTimestampValue(actVar[i].getTimestampValue());
          break;

        case 10: // '\n'
          attr[i].setBinaryValue(actVar[i].getBinaryValue());
          break;

        case 7: // '\007'
          attr[i].setArrayValue(actVar[i].getArrayValue());
          attr[i].setClassPath(actVar[i].getClassPath());
          break;

        case 9: // '\t'
          attr[i].setObjectValue(actVar[i].getObjectValue());
          attr[i].setClassPath(actVar[i].getClassPath());
          break;
      }
    }
    return attr;
  }

  public void updateWorkitemReleData(long workitemId,ActivityVariable[] vars,UserInfo userInfo)
      throws Exception{
    SunflowClient sunflowClient = WorkflowSession.getSunflowClient(userInfo);

    WMTAttribute[] wmtAttrs = this.convertToWMTAttribute(vars);
    sunflowClient.modifyWorkItemRelevantData(workitemId,wmtAttrs);
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?