deleteModeTreeFieldAction.jsp 13.7 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.hrm.HrmUserVarify"%>
<%@ page import="weaver.hrm.User"%>
<%@ page import="weaver.general.Util"%>
<%@ page import="net.sf.json.JSONArray"%>
<%@ page import="net.sf.json.JSONObject"%>
<%@ page import="weaver.filter.XssUtil"%>
<%@ page import="weaver.formmode.modesetdelete.DeleteModeTreeFieldUtil"%>
<%@ page import="weaver.formmode.modesetdelete.ModeDeleteLogUtil"%>
<%@ page import="weaver.formmode.modesetdelete.ModeDeleteLog"%>
<%
out.clear();
User user = HrmUserVarify.getUser(request,response);
if(!HrmUserVarify.checkUserRight("ModeSetting:All", user)){
	response.sendRedirect("/notice/noright.jsp");
 	return;
}
DeleteModeTreeFieldUtil deleteModeTreeFieldUtil = new DeleteModeTreeFieldUtil();
ModeDeleteLogUtil modeDeleteLogUtil = new ModeDeleteLogUtil();

String action = Util.null2String(request.getParameter("action"));
if("deletemodetreefield".equalsIgnoreCase(action)){
	String appid = Util.null2String(request.getParameter("appid"));
	int appidInt = Util.getIntValue(appid);
	String pid = Util.null2String(request.getParameter("pid"));
	String treefieldname = Util.null2String(request.getParameter("treefieldname"));
	
	String allInfoJsonObjectStr = Util.null2String(request.getParameter("allInfoJsonObject"));
	JSONObject allInfoJsonObject = JSONObject.fromObject(allInfoJsonObjectStr);
	JSONArray modelInfoData = allInfoJsonObject.getJSONArray("modelInfoData");
	JSONArray formInfoData = allInfoJsonObject.getJSONArray("formInfoData");
	JSONArray customSearchData = allInfoJsonObject.getJSONArray("customSearchData");
	JSONArray reportInfoData = allInfoJsonObject.getJSONArray("reportInfoData");
	JSONArray customBrowserData = allInfoJsonObject.getJSONArray("customBrowserData");
	JSONArray customTreeData = allInfoJsonObject.getJSONArray("customTreeData");
	JSONArray customResourceData = allInfoJsonObject.getJSONArray("customResourceData");
	JSONArray customPageData = allInfoJsonObject.getJSONArray("customPageData");
	JSONArray remindJobData = allInfoJsonObject.getJSONArray("remindJobData");
	
	//如果应用下还存在被引用的内容,则不允许删除该应用
	boolean canDeleteModeTreeField = true;
	
	int creator = user.getUID();
	String ip = request.getRemoteAddr();
	
	ModeDeleteLog modeDeleteLog = new ModeDeleteLog();
	modeDeleteLog.setCreator(creator);
	modeDeleteLog.setObjecttype("1");
	modeDeleteLog.setObjectid(appidInt);
	modeDeleteLog.setObjectname(treefieldname);
	modeDeleteLog.setIp(ip);
	modeDeleteLogUtil.createModeDeleteLog(modeDeleteLog);
	
	int deleteLogId = modeDeleteLog.getId();
	
	String [] modeIdArray = request.getParameterValues("modeId");
	if((modeIdArray == null && modelInfoData.size()>0) || (modeIdArray != null && modeIdArray.length < modelInfoData.size())){
		canDeleteModeTreeField = false;
	}
	
	//删除模块
	if(modeIdArray!=null){
		for(int i=0;i<modeIdArray.length;i++){
			String modeId = modeIdArray[i];
			int modeIdInt = Util.getIntValue(modeId, 0);
			deleteModeTreeFieldUtil.deleteModeInfoById(modeIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(modelInfoData, modeIdInt);
		}
	}
	
	//删除表单
	String [] formIdArray = request.getParameterValues("formId");
	if((formIdArray == null && formInfoData.size()>0) || (formIdArray != null && formIdArray.length < formInfoData.size())){
		canDeleteModeTreeField = false;
	}
	if(formIdArray!=null){
		for(int i=0;i<formIdArray.length;i++){
			String formId = formIdArray[i];
			int formIdInt = Util.getIntValue(formId, 0);
			deleteModeTreeFieldUtil.deleteWorkflowBillById(formIdInt,deleteLogId,appidInt);
			deleteModeTreeFieldUtil.fillDeleteInfo(formInfoData, formIdInt);
		}
	}
	
	//删除自定义查询
	String [] customSearchIdArray = request.getParameterValues("customSearchId");
	if((customSearchIdArray == null && customSearchData.size()>0) || (customSearchIdArray != null && customSearchIdArray.length < customSearchData.size())){
		canDeleteModeTreeField = false;
	}
	if(customSearchIdArray!=null){
		for(int i=0;i<customSearchIdArray.length;i++){
			String customSearchId = customSearchIdArray[i];
			int customSearchIdInt = Util.getIntValue(customSearchId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomSearchById(customSearchIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customSearchData, customSearchIdInt);
		}
	}
	
	//删除报表
	String [] reportIdArray = request.getParameterValues("reportId");
	if((reportIdArray == null && reportInfoData.size()>0) || (reportIdArray != null && reportIdArray.length < reportInfoData.size())){
		canDeleteModeTreeField = false;
	}
	if(reportIdArray!=null){
		for(int i=0;i<reportIdArray.length;i++){
			String reportId = reportIdArray[i];
			int reportIdInt = Util.getIntValue(reportId, 0);
			deleteModeTreeFieldUtil.deleteModeReportById(reportIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(reportInfoData, reportIdInt);
		}
	}
	
	//删除浏览框
	String [] customBrowserIdArray = request.getParameterValues("customBrowserId");
	if((customBrowserIdArray == null && customBrowserData.size()>0) || (customBrowserIdArray != null && customBrowserIdArray.length < customBrowserData.size())){
		canDeleteModeTreeField = false;
	}
	if(customBrowserIdArray!=null){
		for(int i=0;i<customBrowserIdArray.length;i++){
			String customBrowserId = customBrowserIdArray[i];
			int customBrowserIdInt = Util.getIntValue(customBrowserId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomBrowserById(customBrowserIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customBrowserData, customBrowserIdInt);
		}
	}
	
	//删除树
	String [] customTreeIdArray = request.getParameterValues("customTreeId");
	if((customTreeIdArray == null && customTreeData.size()>0) || (customTreeIdArray != null && customTreeIdArray.length < customTreeData.size())){
		canDeleteModeTreeField = false;
	}
	if(customTreeIdArray!=null){
		for(int i=0;i<customTreeIdArray.length;i++){
			String customTreeId = customTreeIdArray[i];
			int customTreeIdInt = Util.getIntValue(customTreeId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomTreeById(customTreeIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customTreeData, customTreeIdInt);
		}
	}
	
	//删除资源面板
	String [] customResourceIdArray = request.getParameterValues("customResourceId");
	if((customResourceIdArray == null && customResourceData.size()>0) || (customResourceIdArray != null && customResourceIdArray.length < customResourceData.size())){
		canDeleteModeTreeField = false;
	}
	if(customResourceIdArray!=null){
		for(int i=0;i<customResourceIdArray.length;i++){
			String customResourceId = customResourceIdArray[i];
			int customResourceIdInt = Util.getIntValue(customResourceId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomResourceById(customResourceIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customResourceData, customResourceIdInt);
		}
	}
	
	//删除自定义页面
	String [] customPageIdArray = request.getParameterValues("customPageId");
	if((customPageIdArray == null && customPageData.size()>0) || (customPageIdArray != null && customPageIdArray.length < customPageData.size())){
		canDeleteModeTreeField = false;
	}
	if(customPageIdArray!=null){
		for(int i=0;i<customPageIdArray.length;i++){
			String customPageId = customPageIdArray[i];
			int customPageIdInt = Util.getIntValue(customPageId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomPageById(customPageIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customPageData, customPageIdInt);
		}
	}
	
	//删除提醒
	String [] remindJobIdArray = request.getParameterValues("remindJobId");
	if((remindJobIdArray == null && remindJobData.size()>0) || (remindJobIdArray != null && remindJobIdArray.length < remindJobData.size())){
		canDeleteModeTreeField = false;
	}
	if(remindJobIdArray!=null){
		for(int i=0;i<remindJobIdArray.length;i++){
			String remindJobId = remindJobIdArray[i];
			int remindJobIdInt = Util.getIntValue(remindJobId, 0);
			deleteModeTreeFieldUtil.deleteModeRemindJobById(remindJobIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(remindJobData, remindJobIdInt);
		}
	}
	
	if(canDeleteModeTreeField){
		//删除应用
		deleteModeTreeFieldUtil.deleteModeTreeFieldById(appid,deleteLogId);
	}else{
		pid = appid;
	}
	
	XssUtil xssUtil = new XssUtil();
	String deleteLogKey = xssUtil.put(allInfoJsonObject.toString());
	response.sendRedirect("deleteModeTreeFieldLog.jsp?deleteLogKey="+deleteLogKey+"&pid="+pid);
} else if("deleteModeInfo".equalsIgnoreCase(action)){
	String modeid = Util.null2String(request.getParameter("modeid"));
	int modeidInt = Util.getIntValue(modeid);
	String modeName = Util.null2String(request.getParameter("modename"));
	String appid = Util.null2String(request.getParameter("appid"));
	int appidInt = Util.getIntValue(appid, 0);
	
	String allInfoJsonObjectStr = Util.null2String(request.getParameter("allInfoJsonObject"));
	JSONObject allInfoJsonObject = JSONObject.fromObject(allInfoJsonObjectStr);
	JSONArray formInfoData = allInfoJsonObject.getJSONArray("formInfoData");
	JSONArray customSearchData = allInfoJsonObject.getJSONArray("customSearchData");
	JSONArray reportInfoData = allInfoJsonObject.getJSONArray("reportInfoData");
	JSONArray customBrowserData = allInfoJsonObject.getJSONArray("customBrowserData");
	JSONArray customTreeData = allInfoJsonObject.getJSONArray("customTreeData");
	JSONArray remindJobData = allInfoJsonObject.getJSONArray("remindJobData");
	
	//如果应用下还存在被引用的内容,则不允许删除该应用
	boolean canDeleteModeInfo = true;
	
	int creator = user.getUID();
	String ip = request.getRemoteAddr();
	
	ModeDeleteLog modeDeleteLog = new ModeDeleteLog();
	modeDeleteLog.setCreator(creator);
	modeDeleteLog.setObjecttype("2");
	modeDeleteLog.setObjectid(modeidInt);
	modeDeleteLog.setObjectname(modeName);
	modeDeleteLog.setIp(ip);
	modeDeleteLogUtil.createModeDeleteLog(modeDeleteLog);
	
	int deleteLogId = modeDeleteLog.getId();
	
	//删除表单
	String [] formIdArray = request.getParameterValues("formId");
	if((formIdArray == null && formInfoData.size()>0) || (formIdArray != null && formIdArray.length < formInfoData.size())){
		canDeleteModeInfo = false;
	}
	if(formIdArray!=null){
		for(int i=0;i<formIdArray.length;i++){
			String formId = formIdArray[i];
			int formIdInt = Util.getIntValue(formId, 0);
			deleteModeTreeFieldUtil.deleteWorkflowBillById(formIdInt,deleteLogId,appidInt);
			deleteModeTreeFieldUtil.fillDeleteInfo(formInfoData, formIdInt);
		}
	}
	
	//删除自定义查询
	String [] customSearchIdArray = request.getParameterValues("customSearchId");
	if((customSearchIdArray == null && customSearchData.size()>0) || (customSearchIdArray != null && customSearchIdArray.length < customSearchData.size())){
		canDeleteModeInfo = false;
	}
	if(customSearchIdArray!=null){
		for(int i=0;i<customSearchIdArray.length;i++){
			String customSearchId = customSearchIdArray[i];
			int customSearchIdInt = Util.getIntValue(customSearchId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomSearchById(customSearchIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customSearchData, customSearchIdInt);
		}
	}
	
	//删除报表
	String [] reportIdArray = request.getParameterValues("reportId");
	if((reportIdArray == null && reportInfoData.size()>0) || (reportIdArray != null && reportIdArray.length < reportInfoData.size())){
		canDeleteModeInfo = false;
	}
	if(reportIdArray!=null){
		for(int i=0;i<reportIdArray.length;i++){
			String reportId = reportIdArray[i];
			int reportIdInt = Util.getIntValue(reportId, 0);
			deleteModeTreeFieldUtil.deleteModeReportById(reportIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(reportInfoData, reportIdInt);
		}
	}
	
	//删除浏览框
	String [] customBrowserIdArray = request.getParameterValues("customBrowserId");
	if((customBrowserIdArray == null && customBrowserData.size()>0) || (customBrowserIdArray != null && customBrowserIdArray.length < customBrowserData.size())){
		canDeleteModeInfo = false;
	}
	if(customBrowserIdArray!=null){
		for(int i=0;i<customBrowserIdArray.length;i++){
			String customBrowserId = customBrowserIdArray[i];
			int customBrowserIdInt = Util.getIntValue(customBrowserId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomBrowserById(customBrowserIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customBrowserData, customBrowserIdInt);
		}
	}
	
	//删除树
	String [] customTreeIdArray = request.getParameterValues("customTreeId");
	if((customTreeIdArray == null && customTreeData.size()>0) || (customTreeIdArray != null && customTreeIdArray.length < customTreeData.size())){
		canDeleteModeInfo = false;
	}
	if(customTreeIdArray!=null){
		for(int i=0;i<customTreeIdArray.length;i++){
			String customTreeId = customTreeIdArray[i];
			int customTreeIdInt = Util.getIntValue(customTreeId, 0);
			deleteModeTreeFieldUtil.deleteModeCustomTreeById(customTreeIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(customTreeData, customTreeIdInt);
		}
	}
	
	//删除提醒
	String [] remindJobIdArray = request.getParameterValues("remindJobId");
	if((remindJobIdArray == null && remindJobData.size()>0) || (remindJobIdArray != null && remindJobIdArray.length < remindJobData.size())){
		canDeleteModeInfo = false;
	}
	if(remindJobIdArray!=null){
		for(int i=0;i<remindJobIdArray.length;i++){
			String remindJobId = remindJobIdArray[i];
			int remindJobIdInt = Util.getIntValue(remindJobId, 0);
			deleteModeTreeFieldUtil.deleteModeRemindJobById(remindJobIdInt,deleteLogId);
			deleteModeTreeFieldUtil.fillDeleteInfo(remindJobData, remindJobIdInt);
		}
	}
	
	if(canDeleteModeInfo){
		//删除模块
		deleteModeTreeFieldUtil.deleteModeInfoById(modeidInt,deleteLogId);
	}
	
	XssUtil xssUtil = new XssUtil();
	String deleteLogKey = xssUtil.put(allInfoJsonObject.toString());
	response.sendRedirect("deleteModeInfoLog.jsp?deleteLogKey="+deleteLogKey+"&modeid="+modeid);
}
%>