ModeTriggerWorkflowSetOperation.jsp 7.24 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.conn.ConnStatement"%>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="net.sf.json.JSONObject"%>

<jsp:useBean id="RecordSet" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="WorkflowComInfo" class="weaver.workflow.workflow.WorkflowComInfo" scope="page" />
<jsp:useBean id="InterfaceTransmethod" class="weaver.formmode.interfaces.InterfaceTransmethod" scope="page" />
<%
if(!HrmUserVarify.checkUserRight("ModeSetting:All", user)){
	response.sendRedirect("/notice/noright.jsp");
	return;
}
out.clear();

String operation = Util.null2String(request.getParameter("operation"));
String comeFrom = Util.null2String(request.getParameter("comefrom"));
int id = Util.getIntValue(request.getParameter("id"),0);
int modeid = Util.getIntValue(request.getParameter("modeid"),0);
int isBrowser = Util.getIntValue(request.getParameter("isBrowser"),0);

//先删除数据再重新保存
if ("save".equalsIgnoreCase(operation)) {
	boolean isAdd = (id <= 0);
	int workflowid = Util.getIntValue(request.getParameter("workflowid"),0);
	int wfcreater = Util.getIntValue(request.getParameter("wfcreater"),0);
	int wfcreaterfieldid = Util.getIntValue(request.getParameter("wfcreaterfieldid"),0);
	int isClose = Util.getIntValue(request.getParameter("isClose"),0);
	int detailno = Util.getIntValue(request.getParameter("detailno"),0);
	String successwriteback = InterfaceTransmethod.toHtmlForMode(request.getParameter("successwriteback"));
	String failwriteback = InterfaceTransmethod.toHtmlForMode(request.getParameter("failwriteback"));
	
	String showcondition = Util.null2String(request.getParameter("showcondition"));
	String showconditioncn = Util.null2String(request.getParameter("showconditioncn"));
	String triggerName = Util.null2String(request.getParameter("triggerName"));
	if("".equals(triggerName)){
		triggerName = SystemEnv.getHtmlLabelName(30056,user.getLanguage());
	}
	String triggerOperation = Util.null2String(request.getParameter("triggerOperation"),"1");
	if("".equals(triggerOperation)){
		triggerOperation = "1";
	}
	String isEnable = Util.null2String(request.getParameter("isEnable"), "1");
	
	if(modeid <= 0 || workflowid <= 0){
		response.sendRedirect("/formmode/interfaces/ModeTriggerWorkflowSet.jsp?modeid="+modeid+"&isBrowser="+isBrowser);
		return;
	}
	
   	String sql = "";
    //保存明细数据
   	if(wfcreater!=3){
   		wfcreaterfieldid = 0;
   	}
   	if(isAdd){
   		//插入主表数据
	    sql = "insert into mode_triggerworkflowset(modeid,workflowid,wfcreater,wfcreaterfieldid,successwriteback,failwriteback,showcondition,showconditioncn,triggername,triggeroperation,isenable)";
	    sql += " values ("+modeid+","+workflowid+","+wfcreater+","+wfcreaterfieldid+",'"+successwriteback+"','"+failwriteback+"',?,?,'"+triggerName+"','"+triggerOperation+"','"+isEnable+"')";
	    
	    ConnStatement statement = new ConnStatement();
	    statement.setStatementSql(sql);
	  	statement.setString(1 , showcondition);
	  	statement.setString(2 , showconditioncn);
	  	statement.executeUpdate();
	  	statement.close();
	    //查询id
	    sql = "select max(id) id from mode_triggerworkflowset where modeid = " + modeid + " and workflowid = " + workflowid + " and wfcreater = " + wfcreater + " and wfcreaterfieldid = " +wfcreaterfieldid;
	    rs.executeSql(sql);
	    while(rs.next()){
	    	id = rs.getInt("id");
	    }
   	}else{
   		//更新主表数据
	    sql = "update mode_triggerworkflowset set workflowid="+workflowid+",wfcreater="+wfcreater+",wfcreaterfieldid="+wfcreaterfieldid+",successwriteback='"+successwriteback+"'";
	    sql += ",failwriteback='"+failwriteback+"',showcondition=?,showconditioncn=?,triggername='"+triggerName+"',triggeroperation='"+triggerOperation+"',isenable='"+isEnable+"'";
	    sql += " where id = " + id;
	    ConnStatement statement = null;
	    try{
	    	statement = new ConnStatement();
		    statement.setStatementSql(sql);
		  	statement.setString(1 , showcondition);
		  	statement.setString(2 , showconditioncn);
		  	statement.executeUpdate();
	    }catch(Exception e){
	    	rs.writeLog(e);
	    }finally{
	  		statement.close();
	    }
   	}
    
	//新建的时候,如果明细和主表用的为同一个表单,则初始化字段的对应关系
	if(isAdd){
       	int modeformid = 0;
       	int wfformid = 0;
       	wfformid = Util.getIntValue(WorkflowComInfo.getFormId(String.valueOf(workflowid)));
 		sql = "select modename,formid from modeinfo where id = " + modeid;
 		rs.executeSql(sql);
 		while(rs.next()){
 			modeformid = rs.getInt("formid");
 		}
 		if(wfformid==modeformid&&wfformid!=0){
	      	sql = "insert into mode_triggerworkflowsetdetail (mainid,modefieldid,wffieldid) select " + id + ",id,id from workflow_billfield where billid = " + wfformid;
			rs.executeSql(sql);
     	}
	}else{
   		//删除明细表数据
		sql = "delete from mode_triggerworkflowsetdetail where mainid = " + id;
		rs.executeSql(sql);
		
        for(int i=0;i<=detailno;i++){
        	String wffieldidvalues[] = request.getParameterValues("wffieldid"+i);
        	String modefieldidvalues[] = request.getParameterValues("modefieldid"+i);
        	
        	if(wffieldidvalues!=null && modefieldidvalues!=null){
        		for(int j=0;j<wffieldidvalues.length;j++){
        			int wffieldidvalue = Util.getIntValue((String)wffieldidvalues[j],0);
        			int modefieldidvalue = Util.getIntValue((String)modefieldidvalues[j],0);
        			
        			sql = "insert into mode_triggerworkflowsetdetail (mainid,modefieldid,wffieldid) values ("+id+","+modefieldidvalue+","+wffieldidvalue+")";
        			rs.executeSql(sql);
        		}
        	}
        }
	}
	if(isClose==1){
		response.getWriter().write(
		"<script>try{parentWin = parent.parent.getParentWindow(parent);	dialog = parent.parent.getDialog(parent);}catch(e){}"
		+"var idValue = '"+id+"';var nameValue = '"+triggerName+"';	var returnjson = {id:idValue,name:nameValue};"
		+"if(dialog){	 try{    dialog.callback(returnjson); }catch(e){};	 try{    dialog.close(returnjson); }catch(e){}"
		+"}else{	window.parent.parent.returnValue=returnjson;	window.parent.parent.close();}"
		+"</script>");
	}else{
		response.sendRedirect("/formmode/interfaces/ModeTriggerWorkflowSet.jsp?modeid="+modeid+"&id="+id+"&isBrowser="+isBrowser);
	}
	return;
}else if ("del".equalsIgnoreCase(operation)){
    //删除主表数据
	String sql = "delete from mode_triggerworkflowset where id = " + id;
	rs.executeSql(sql);
	//删除明细表数据
	sql = "delete from mode_triggerworkflowsetdetail where mainid = " + id;
	rs.executeSql(sql);
	if("listPage".equalsIgnoreCase(comeFrom)){
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("status", "1");
		out.print(jsonObject.toString());
	}else{
		response.sendRedirect("/formmode/interfaces/ModeTriggerWorkflowList.jsp?modeid="+modeid);
	}
	return;
}else if("changeIsEnable".equalsIgnoreCase(operation)){
	int isEnable = Util.getIntValue(request.getParameter("isEnable"), 0);
	rs.executeSql("update mode_triggerworkflowset set isenable='" + isEnable +"' where id=" + id);
	JSONObject jsonObject = new JSONObject();
	jsonObject.put("status", "1");
	out.print(jsonObject.toString());
	return;
}
%>