pathinfopcoessimpl.java
来自「公司自己开发的工作流引擎」· Java 代码 · 共 986 行 · 第 1/3 页
JAVA
986 行
}
logger.info("Execution getPathInfoElements cost time:"+
(System.currentTimeMillis()-startTime)+" ms.");
return elmString;
}
/**
* 取得指定活动的流向元素
* @param nextInfo NextActivityInfo
* @param atdId long
* @param selectElementType String
* @return String
*/
private String getInputActElements(NextActivityInfo nextInfo,long atdId,
String selectElementType,SelectActorParam actorParam,String selectTag,
ArrayList actorList){
long startTime=System.currentTimeMillis();
String elmString="";
NextActivityInfo actInfo=getActivityInfo(nextInfo,atdId);
if(actInfo!=null){
String orgRel=actInfo.getActParamValueByName("orgRel");
String actorSelMode=actInfo.getActParamValueByName("actorSelMode");
String noSelActorPromptType=actInfo.getActParamValueByName(
"noSelActorPromptType");
String senderMode=actInfo.getActParamValueByName("senderMode");
int tranType=actInfo.getTranType();
long subActId=0;
//如果是嵌套子流程,则取得子流程的首节点信息
if(actInfo.getActType()==2&&actInfo.getFirstNestingActivity()!=null){
//取得嵌套活动第一个节点的信息
NextActivityInfo subflowInfo=actInfo.getFirstNestingActivity();
subActId=subflowInfo.getActivityID();
orgRel=subflowInfo.getActParamValueByName("orgRel");
actorSelMode=subflowInfo.getActParamValueByName("actorSelMode");
noSelActorPromptType=subflowInfo.getActParamValueByName(
"noSelActorPromptType");
senderMode=subflowInfo.getActParamValueByName("senderMode");
tranType=subflowInfo.getTranType();
}
String onClick="";
if(selectElementType.equals("radio")||selectElementType.equals("checkbox")){
onClick="setProcessInfo(this)";
}
elmString+="<span class=\"style2\">"+
"<input name=\"flow_activity_selected\" actName='"+
actInfo.getATP_APRTINAME()+"' tranType='"+tranType+"' actId='"+
actInfo.getActivityID()+"' subActId='"+subActId+"' selectType='"+
selectElementType+"' orgRel='"+orgRel+"' actorSelMode='"+actorSelMode+
"' senderMode='"+senderMode+"' noSelActorPromptType='"+
noSelActorPromptType+"' actType='"+actInfo.getActType()+"' type=\""+
selectElementType+"\" "+selectTag+" onClick=\""+onClick+"\" value=\""+
actInfo.getActivityID()+"\">"+"<span class=\"style7\"> "+
actInfo.getATP_APRTINAME()+"<span class=\"style2\"></span></td>";
String sValue="";
if(senderMode.equals("single")||senderMode.equals("multi")){
SelectActorTree firstActor=this.getFirstActor(actorList,
actorParam.getSelectType());
if(firstActor!=null){
sValue=firstActor.getTreeId()+";"+firstActor.getTreeName()+";"+
firstActor.getTreeType()+";"+firstActor.getParentId()+";0;0;"+
(firstActor.isIfAgen()?"Y":"N")+";"+firstActor.getCosignUserId();
}
}
elmString+="<input type=\"hidden\" id=\"participator_"+
actInfo.getActivityID()+"\" name=\"participator_"+
actInfo.getActivityID()+"\" value=\""+sValue+"\">";
elmString+="<input type=\"hidden\" id=\"variable_"+actInfo.getActivityID()+
"\" name=\"variable_"+actInfo.getActivityID()+"\">";
}
logger.info("Execution getInputActElements cost time:"+
(System.currentTimeMillis()-startTime)+" ms.");
return elmString;
}
/**
* 取得指定活动的办理人信息元素
* @param nextInfo NextActivityInfo
* @param atdId long
* @param actorParam SelectActorParam
* @param actorList List
* @return String
*/
private String getActorElements(NextActivityInfo nextInfo,long atdId,
SelectActorParam actorParam,ArrayList actorList,String contextPath){
long startTime=System.currentTimeMillis();
String elmString="";
NextActivityInfo actInfo=getActivityInfo(nextInfo,atdId);
if(actInfo!=null){
String senderMode=actInfo.getActParamValueByName("senderMode");
String actorSelMode=actInfo.getActParamValueByName("actorSelMode");
//如果是嵌套子流程,则取得子流程的首节点信息
if(actInfo.getActType()==2&&actInfo.getFirstNestingActivity()!=null){
//取得嵌套活动第一个节点的信息
NextActivityInfo subflowInfo=actInfo.getFirstNestingActivity();
senderMode=subflowInfo.getActParamValueByName("senderMode");
actorSelMode=subflowInfo.getActParamValueByName("actorSelMode");
}
String selectActorStyle="display:";
String textActorStyle="display:";
String clearImageStyle="display:";
//选择参与者模式为隐藏,则隐藏参与者信息
if(actorSelMode!=null&&actorSelMode.equals("auto")){
selectActorStyle="display:none";
textActorStyle="display:none";
clearImageStyle="display:none";
}
else{
if(senderMode!=null&&senderMode.equals("multi")){
selectActorStyle="display:";
textActorStyle="display:";
clearImageStyle="display:";
}
else if(senderMode!=null&&senderMode.equals("single")){
//结果个数大于1
if(this.getActorCount(actorList,actorParam.getSelectType())>1){
selectActorStyle="display:";
textActorStyle="display:none";
clearImageStyle="display:none";
}
else{
selectActorStyle="display:none";
textActorStyle="display:";
clearImageStyle="display:none";
}
}
else{
selectActorStyle="display:none";
textActorStyle="display:none";
clearImageStyle="display:none";
}
}
elmString+="<span style=\""+selectActorStyle+"\" class=\""+
WF_SELECT_SPAN_STYLE_CLASS+"\"><select tag_value=\""+
actInfo.getActivityID()+"\" senderMode=\""+senderMode+"\" class=\""+
WF_SELECT_STYLE_CLASS+
"\" onChange=\"changeActor(this)\" select_actor_type=\""+
actorParam.getSelectType()+"\" name=\"select_actor_"+
actInfo.getActivityID()+"\">";
if(actorList!=null&&actorList.size()>0){
int iActorCount=0;
for(int i=0;i<actorList.size();i++){
SelectActorTree actorNode=(SelectActorTree)actorList.get(i);
String selected="";
String preString="";
//前置字符串
if(actorNode.getLevel()>1){
for(int k=0;k<actorNode.getLevel();k++){
preString+=" ";
}
preString+="|-";
}
//默认选择第一个
if(actorNode.getTreeType().equals(actorParam.getSelectType())){
iActorCount++;
if(iActorCount==1){
selected=" selected ";
}
}
elmString+="<option tree_id='"+actorNode.getTreeId()+"' tree_name='"+
actorNode.getTreeName()+"' tree_type='"+actorNode.getTreeType()+
"' parent_id='"+actorNode.getParentId()+"' parent_name='"+
actorNode.getParentName()+"' parent_type='"+
actorNode.getParentType()+"' if_agen='"+(actorNode.isIfAgen()?"Y":
"N")+"' consign_user_id='"+actorNode.getCosignUserId()+"' "+
selected+">"+preString+actorNode.getTreeName()+"</option>";
}
}
elmString+="</select></span>";
String actorTextTagValue="";
String actorTextValue="";
if(senderMode!=null&&(senderMode.equals("single")||
senderMode.equals("multi"))){
SelectActorTree firstActor=this.getFirstActor(actorList,
actorParam.getSelectType());
if(firstActor!=null){
actorTextTagValue=",["+firstActor.getTreeId()+"]";
actorTextValue=firstActor.getTreeName();
}
}
elmString+="<span style=\""+textActorStyle+"\"><input tag_value=\""+
actorTextTagValue+"\" name=\"select_actor_text_"+
actInfo.getActivityID()+"\" type=\"text\" class=\""+
WF_TEXT_STYLE_CLASS+"\" value=\""+actorTextValue+
"\" size=\"15\" readonly></span>";
elmString+="<span style=\""+clearImageStyle+"\"><img src=\""+contextPath+
"/workflow/images/clear.gif\" title=\"清除\" tag_value=\""+
actInfo.getActivityID()+"\" onClick=\"clearActor(this)\"></span>";
}
logger.info("Execution getActorElements cost time:"+
(System.currentTimeMillis()-startTime)+" ms.");
return elmString;
}
/**
* 取得指定活动的时限信息元素
* @param nextInfo NextActivityInfo
* @param atdId long
* @param actorParam SelectActorParam
* @param actorList List
* @return String
*/
private String getTimeLimitElements(NextActivityInfo nextInfo,long atdId){
long startTime=System.currentTimeMillis();
String elmString="";
NextActivityInfo actInfo=getActivityInfo(nextInfo,atdId);
if(actInfo!=null){
String timeLimitType=actInfo.getActParamValueByName("setTimeLimitType");
long atdMaxTime=actInfo.getAtdMaxTime();
//如果是嵌套子流程,则取得子流程的首节点信息
if(actInfo.getActType()==2&&actInfo.getFirstNestingActivity()!=null){
//取得嵌套活动第一个节点的信息
NextActivityInfo subflowInfo=actInfo.getFirstNestingActivity();
timeLimitType=subflowInfo.getActParamValueByName("setTimeLimitType");
atdMaxTime=subflowInfo.getAtdMaxTime();
}
String readOnly=" readonly ";
String displayStyle="display:";
//只读
if(timeLimitType!=null&&timeLimitType.equals("read")){
readOnly=" readonly ";
displayStyle="display:";
}
//读写
else if(timeLimitType!=null&&timeLimitType.equals("write")){
readOnly=" ";
displayStyle="display:";
}
//隐藏
else{
readOnly=" ";
displayStyle="display:none";
}
elmString+="<span style=\""+displayStyle+
"\"> 时限:<input name=\"act_maxtime_"+actInfo.getActivityID()+
"\" class=\""+WF_TEXT_STYLE_CLASS+"\" type=\"text\" value=\""+
ConvertWorkitemDatetime.getWorkDatetime(atdMaxTime)+"\" size=\"3\" "+
readOnly+">工作日</span>";
}
logger.info("Execution getTimeLimitElements cost time:"+
(System.currentTimeMillis()-startTime)+" ms.");
return elmString;
}
/**
* 取得指定活动的签收信息元素
* @param nextInfo NextActivityInfo
* @param atdId long
* @param actorParam SelectActorParam
* @param actorList List
* @return String
*/
private String getSignInElements(NextActivityInfo nextInfo,long atdId){
long startTime=System.currentTimeMillis();
String elmString="";
NextActivityInfo actInfo=getActivityInfo(nextInfo,atdId);
if(actInfo!=null){
String isNeedSignIn=actInfo.getActParamValueByName("isNeedSignIn");
//如果是嵌套子流程,则取得子流程的首节点信息
if(actInfo.getActType()==2&&actInfo.getFirstNestingActivity()!=null){
//取得嵌套活动第一个节点的信息
NextActivityInfo subflowInfo=actInfo.getFirstNestingActivity();
isNeedSignIn=subflowInfo.getActParamValueByName("isNeedSignIn");
}
//用户决定是否签收,即用户可在界面上决定是否需要签收。
if(isNeedSignIn!=null&&isNeedSignIn.equals("2")){
elmString+=
"<span> 需要签收<input class=\"WF_CHECKBOX_STYLE_CLASS\" tag_value=\""+
actInfo.getActivityID()+"\" onClick=\"changeTaskSignInInfo(this)\" type=\"checkbox\" name=\"need_signin_checkbox_"+
actInfo.getActivityID()+"\" value=\"1\"></span>";
}
}
logger.info("Execution getSignInElements cost time:"+
(System.currentTimeMillis()-startTime)+" ms.");
return elmString;
}
/**
* 在列表中取得type类型的参与这
* @param treeList ArrayList
* @param type String
* @return int
*/
private SelectActorTree getFirstActor(ArrayList treeList,String type){
SelectActorTree treeNode=null;
if(treeList!=null&&treeList.size()>0){
for(int i=0;i<treeList.size();i++){
SelectActorTree tempNode=(SelectActorTree)treeList.get(i);
if(type.equals(tempNode.getTreeType())){
treeNode=tempNode;
break;
}
}
}
return treeNode;
}
/**
* 从NextActivityInfo.getNextActivity列表中取出对应的活动流向信息
* @param nextInfo NextActivityInfo
* @param atdId long
* @return NextActivityInfo
*/
private NextActivityInfo getActivityInfo(NextActivityInfo nextInfo,long atdId){
NextActivityInfo info=null;
List nextList=nextInfo.getNextActivity();
if(nextList!=null&&nextList.size()>0){
for(int i=0;i<nextInfo.getNextActivity().size();i++){
NextActivityInfo tempInfo=(NextActivityInfo)nextInfo.getNextActivity().
get(i);
if(tempInfo.getActivityID()==atdId){
info=tempInfo;
break;
}
}
}
return info;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?