⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wizardaction.java

📁 OBPM是一个开源
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package cn.myapps.core.wizard.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import cn.myapps.base.action.ParamsTable;
import cn.myapps.constans.Web;
import cn.myapps.core.deploy.application.ejb.ApplicationProcessBean;
import cn.myapps.core.deploy.application.ejb.ApplicationVO;
import cn.myapps.core.deploy.module.ejb.ModuleProcess;
import cn.myapps.core.deploy.module.ejb.ModuleVO;
import cn.myapps.core.dynaform.activity.ejb.Activity;
import cn.myapps.core.dynaform.activity.ejb.ActivityProcessBean;
import cn.myapps.core.dynaform.form.action.FormAction;
import cn.myapps.core.dynaform.form.ejb.Form;
import cn.myapps.core.dynaform.form.ejb.FormProcessBean;
import cn.myapps.core.dynaform.view.ejb.Column;
import cn.myapps.core.dynaform.view.ejb.ColumnProcessBean;
import cn.myapps.core.dynaform.view.ejb.View;
import cn.myapps.core.dynaform.view.ejb.ViewProcessBean;
import cn.myapps.core.resource.ejb.ResourceProcess;
import cn.myapps.core.resource.ejb.ResourceType;
import cn.myapps.core.resource.ejb.ResourceVO;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.core.workflow.storage.definition.ejb.BillDefiProcessBean;
import cn.myapps.core.workflow.storage.definition.ejb.BillDefiVO;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.sequence.Sequence;

import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;

public class WizardAction extends ActionSupport{
	
		
		private static final ThreadLocal _params = new ThreadLocal();
		protected String application;
		
		private String moduleid;
		
		private String _formact[];
		
		private String flowlist;
		
		private String disField;
		
	    private String workflowname;
	
//	  the property of view
		private String _viewact[];
		
		private String viewname;
		
		private String description;
		
		private String superiorid;
		
		private String opentype;
		
		private String name;
		
		private int type;
		
		public static Map _FORMACLIST =  new TreeMap();
		
		public static Map _VIEWACLIST = new TreeMap();
		
		private static Map _OPENTYPE = new TreeMap();
		
		public static Map _WORKFLOW = new TreeMap();

		static {
			_OPENTYPE.put(Integer.valueOf(View.OPEN_TYPE_NORMAL), "Normal");
			_OPENTYPE
					.put(Integer.valueOf(View.OPEN_TYPE_POP), "Open in pop window");
			_OPENTYPE.put(Integer.valueOf(View.OPEN_TYPE_PARENT),
					"Open in working area");
		}

		static
		{
			//_ACLIST.put("0", "Please Choose");
			_VIEWACLIST.put("1", "查询");
			_VIEWACLIST.put("2", "新建");
			_VIEWACLIST.put("3", "删除");
			_VIEWACLIST.put("4", "修改");
		//	_ACLIST.put("6", "脚本处理");
		//	_ACLIST.put("7", "DOCUMENT_MODIFY");
			_FORMACLIST.put("8", "关闭窗口");
			_FORMACLIST.put("9", "保存并关闭");
			_FORMACLIST.put("10", "返回");
			_FORMACLIST.put("11", "保存返回");
			_FORMACLIST.put("12", "保存新建");
			
			_WORKFLOW.put("5", "流程处理");
		}

		private static Map _FORMTYPE = new TreeMap();

		static {
			_FORMTYPE.put(Integer.valueOf(Form.FORM_TYPE_NORMAL), "NORMAL");
			_FORMTYPE.put(Integer.valueOf(Form.FORM_TYPE_SEARCHFORM), "SEARCHFORM");
			_FORMTYPE.put(Integer.valueOf(Form.FORM_TYPE_SUBFORM), "SUBFORM");
		}

		
	
		public String doNew() throws Exception {

			return SUCCESS;
		}
		
		
		
		public String doSaveShortHand() throws Exception
		{
			Form form = new Form();
			FormProcessBean formbean = new FormProcessBean();
			ModuleProcess mp = (ModuleProcess) ProcessFactory
			.createProcess(ModuleProcess.class);
	      ModuleVO mv = (ModuleVO) mp.doView(moduleid);
	      form.setModule(mv);
	      
	      if (mv != null) {
		   form.setApplication(mv.getApplication());
	       }
	      form.setApplicationid(this.getInstance());
	      form.setName(this.getName());
	      form.setType(this.getType());
	      String authorname = getUser().getLoginno();
	      List list = new ArrayList();
	        try{
	        	ParamsTable params= this.getParams();
	    		if(disField.equals("ture"))
	         	{
	         		form.setTemplatecontext("Test1:<INPUT name=test1 validateLibs dialogView fieldtype=\"VALUE_TYPE_VARCHAR\" selectDate=\"false\" textType=\"text\" readonlyScript hiddenPrintScript hiddenScript validateRule valueScript discript popToChoice=\"false\" calculateOnRefresh=\"false\" refreshOnChanged=\"false\" className=\"cn.myapps.core.dynaform.form.ejb.InputField\">&nbsp; Test2:<INPUT name=test2 validateLibs=\"\" dialogView=\"\" fieldtype=\"VALUE_TYPE_VARCHAR\" selectDate=\"false\" textType=\"text\" readonlyScript=\"\" hiddenPrintScript=\"\" hiddenScript=\"\" validateRule=\"\" valueScript=\"\" discript=\"\" popToChoice=\"false\" calculateOnRefresh=\"false\" refreshOnChanged=\"false\" className=\"cn.myapps.core.dynaform.form.ejb.InputField\">");
	         	}
	    			formbean.doCreate(form);
	    	
//	    			dealwith the activity of from 
	    			
	    	     	Activity act;
	    	     	ActivityProcessBean  activity = new ActivityProcessBean();
	    	     	if(_formact!=null&&_formact.length>0)
	    	     	{		
	    	         for(int i=0;i<_formact.length;i++)
	    	         {
	    	            act = new Activity();
	    	            act.setName((String)_FORMACLIST.get(_formact[i]));
	    	            act.setType(Integer.parseInt(_formact[i]));
	    	            act.setParentForm(form);
	    	            act.setApplicationid(form.getApplicationid());
	    	            activity.doCreate(act);
	    	         }
	    	    	}
	    	     	
	    	        if(viewname!=null&&viewname.trim().length()>0)
	    	        {	
	    	           int opentype = params.getParameterAsLong("opentype").intValue();
	    	           String resourceid = params.getParameterAsString("_resourceid");
	    	           ApplicationProcessBean ap = new ApplicationProcessBean();
	    	           ApplicationVO av = (ApplicationVO)ap.doView(mv.getApplication().getId());
	    	           
	    	           String  filterscript = "\"$formname = '"+av.getName()+"/"+mv.getName()+"/"+form.getName()+"'\"";
	    	           View view = new View();
	    	           ViewProcessBean viewbean = new ViewProcessBean();
	    	           view.setName(viewname);
	    	           view.setOpenType(opentype);
	    	           view.setFilterScript(filterscript);
	    	           view.setModule(mv);
	    	       	if (view.getId() == null || view.getId().trim().length() <= 0) {
	    	    		view.setId(Sequence.getSequence());
	    	    		view.setSortId(Sequence.getTimeSequence());
	    	    		view.setApplicationid(params.getParameterAsString("application"));
	    	    	  }
	    	    	   ResourceProcess rp = (ResourceProcess) ProcessFactory
	    	    				.createProcess(ResourceProcess.class);
	    	    		ResourceVO resource = (ResourceVO) rp.doView(resourceid);

	    	    		if (superiorid != null && superiorid.trim().length() > 0) {
	    	    			if (resource == null) {
	    	    				resource = new ResourceVO();
	    	    				resource.setId(Sequence.getSequence());
	    	    				resource.setSortId(Sequence.getTimeSequence());
	    	    				resource.setApplicationid(params.getParameterAsString("application"));
	    	    			}

	    	    			ResourceVO sp = (ResourceVO) rp.doView(superiorid);
	    	    			resource.setSuperior(sp);

	    	    			resource.setModule(mv.getId());
	    	    			resource.setApplication(mv.getApplication().getId());
	    	    			resource.setDisplayView(view.getId());
	    	    			resource.setDescription(description);
	    	    			resource.setType(ResourceType.RESOURCE_TYPE_MENU);
	    	    			// resource.setIsprotected(ResourceType.ISPROTECTED_YES);
	    	    			resource.setIsprotected(false);
	    	    			resource.setResourceAction(ResourceType.ACTION_TYPE_VIEW);
	    	    			resource.setDisplayView(view.getId());
	    	    			view.setRelatedResourceid(resource.getId());

	    	    			rp.doUpdate(resource);

	    	    		} else {
	    	    			if (resource != null) {
	    	    				rp.doRemove(resource.getId());
	    	    			}
	    	    		}

	    	    		viewbean.doUpdate(view);
	    	    		
    	    			
//    	    			dealwith the columne of view
    	    			if(disField.equals("ture"))
    	    	     	{
    	    			Column column = new Column();
    	    			Column column2 = new Column();
    	    			ColumnProcessBean cp = new ColumnProcessBean();
    	    			column.setName("Test1");
    	    			column.setType(Column.COLUMN_TYPE_FIELD);
    	    			column.setView(view);
    	    			column.setFieldName("test1");
    	    			column.setFormid(form.getId());
    	    			column.setApplicationid(params.getParameterAsString("application"));
    	    			cp.doCreate(column);
    	    			column2.setName("Test2");
    	    			column2.setType(Column.COLUMN_TYPE_FIELD);
    	    			column2.setView(view);
    	    			column2.setFieldName("test2");
    	    			column2.setFormid(form.getId());
    	    			column2.setApplicationid(params.getParameterAsString("application"));
    	    			cp.doCreate(column2);
    	    	     	}
    	    		
    	    			
//    	    			dealwith the activity of view
    	    			if(_viewact!=null&&_viewact.length>0)
    	    	     	{		
    	    	         for(int i=0;i<_viewact.length;i++)
    	    	         {
    	    	        	 act = new Activity();
    	    	             act.setName((String)_VIEWACLIST.get(_viewact[i]));
    	    	             act.setType(Integer.parseInt(_viewact[i]));
    	    	             act.setParentView(view);
    	    	             if(_viewact[i].equals("1"))
    	    	             {
    	    	             	//get flowid and save to activitys
    	    	             	act.setOnActionView(view);
    	    	             }else if(_viewact[i].equals("2")||_viewact[i].equals("4"))
    	    	             {
    	    	            	 act.setOnActionForm(form);
    	    	             }
    	    	             act.setApplicationid(form.getApplicationid());
    	    	             activity.doCreate(act); 
    	    	        	 
    	    	         }
    	    	     	}
    	    			
    	    			
    	    			//create a new workfow
    	    		if(!authorname.equals("")&&authorname!=null)
    	    		 {
    	    			StringBuffer strb = new StringBuffer();
    	    			strb.append( "<cn.myapps.core.workflow.element.FlowDiagram><ACTION_NORMAL>0</ACTION_NORMAL><ACTION_REMOVE>1</ACTION_REMOVE><ACTION_ADD_ABORTNODE>16</ACTION_ADD_ABORTNODE><ACTION_ADD_AUTONODE>17</ACTION_ADD_AUTONODE>");
    	    			strb.append("<ACTION_ADD_COMPLETENODE>18</ACTION_ADD_COMPLETENODE><ACTION_ADD_MANUALNODE>19</ACTION_ADD_MANUALNODE><ACTION_ADD_STARTNODE>20</ACTION_ADD_STARTNODE><ACTION_ADD_SUSPENDNODE>21</ACTION_ADD_SUSPENDNODE>");
    	    			strb.append("<ACTION_ADD_TERMINATENODE>22</ACTION_ADD_TERMINATENODE><ACTION_ADD_RELATION>4096</ACTION_ADD_RELATION><ACTION_EDIT_NODE>268435472</ACTION_EDIT_NODE><ACTION_EDIT_RELATION>268439552</ACTION_EDIT_RELATION>");
    	    			strb.append("<ACTION_BREAK_LINE>1048576</ACTION_BREAK_LINE><flowstatus>16</flowstatus><flowpath></flowpath><deleteMSG>null</deleteMSG><TOP_ALIGNMENT>0.0</TOP_ALIGNMENT><CENTER_ALIGNMENT>0.5</CENTER_ALIGNMENT>");
    	    			strb.append("<BOTTOM_ALIGNMENT>1.0</BOTTOM_ALIGNMENT><LEFT_ALIGNMENT>0.0</LEFT_ALIGNMENT><RIGHT_ALIGNMENT>1.0</RIGHT_ALIGNMENT><WIDTH>1</WIDTH><HEIGHT>2</HEIGHT><PROPERTIES>4</PROPERTIES><SOMEBITS>8</SOMEBITS>");
    	    			strb.append("<FRAMEBITS>16</FRAMEBITS><ALLBITS>32</ALLBITS><ERROR>64</ERROR><ABORT>128</ABORT><cn.myapps.core.workflow.element.StartNode><prenodeid></prenodeid><backnodeid></backnodeid><formname></formname>");
    	    			strb.append("<fieldpermlist></fieldpermlist><isstartandnext>false</isstartandnext><x>36</x><y>70</y><width>46</width><height>55</height><_iscurrent>false</_iscurrent><scale>0</scale><name></name><note></note><id>1181125456593</id>");
    	    			strb.append("</cn.myapps.core.workflow.element.StartNode><cn.myapps.core.workflow.element.CompleteNode><prenodeid></prenodeid><backnodeid></backnodeid><formname></formname><fieldpermlist></fieldpermlist>");
    	    			strb.append("<isstartandnext>false</isstartandnext><x>351</x><y>146</y><width>46</width><height>55</height><_iscurrent>false</_iscurrent><scale>0</scale><name></name><note></note><id>1181125467687</id></cn.myapps.core.workflow.element.CompleteNode>");
    	    			strb.append("<cn.myapps.core.workflow.element.Relation><state></state><startnodeid>1181125456593</startnodeid><endnodeid>1181125467687</endnodeid><ispassed>false</ispassed><isreturn>false</isreturn><condition></condition><action></action><pointstack>36;70;351;146</pointstack>");

⌨️ 快捷键说明

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