SpecialFileCheckOperation.jsp 4.18 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ include file="/templetecheck/filecheck/CheckUserIsSysadmin.jsp" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.templetecheck.filecheck.*" %>
<%@ page import="java.util.Set" %>
<%
String operation = Util.null2String(request.getParameter("operation"));
	if("exportSpecialFileReport".equalsIgnoreCase(operation)){
		ExportReportOperation ero = new ExportReportOperation();
		ero.exportReport("upgradecheckSpecialFileresult");
		out.print("{\"status\":\"ok\"}");
		return;
	}else if("refleshNonStandardFile".equalsIgnoreCase(operation)){//重新获取非标文件
		if(NonStandardFiles.runningStatus==1){
			out.print("{\"status\":\"false\"}");
		}else{
			NonStandardFiles.runningStatus=1;
			RecordSet rs=new RecordSet();
			new BaseBean().writeLog("删除非标文件列表,执行重新获取非标准文件");
			rs.executeUpdate("delete from nonStandardFile");
			NonStandardFiles nonStandardFiles = new NonStandardFiles();
			nonStandardFiles.getNonStandardFileList();
			NonStandardFiles.runningStatus=0;
			out.print("{\"status\":\"ok\"}");
		}
		return;
	}else if("checkNoStanderrunstatus".equalsIgnoreCase(operation)){//获取刷新非标文件的状态
		if(NonStandardFiles.runningStatus==0){
			out.print("{\"status\":\"ok\"}");
		}else{
			out.print("{\"status\":\"false\"}");
		}
	}else if("checkrunstatus".equalsIgnoreCase(operation)) {//获取文件校验的状态
		if (CheckRule.runningStatus == 0) {
			out.print("{\"status\":\"ok\"}");
		} else {
			out.print("{\"status\":\"false\"}");
		}
	}else  if("stopmatchfilethread".equals(operation)){
	    try{
			if(MatchSpecialFileThread.MatchSpecialStatus==1){
				new  BaseBean().writeLog("开始执行停止线程的工作");
				Set<Thread> runningThreads=Thread.getAllStackTraces().keySet();
				for(Thread runningThread:runningThreads){
					if(runningThread.getName().equals("executematchSpecialFile")){//找到执行指定文件检测的线程
						new  BaseBean().writeLog("找到并停止线程停止线程的工作");
						runningThread.stop();//关闭线程
						new BaseBean().writeLog("停止指定文件检测线程结束");
						break;
					}
				}
			}else{
				new BaseBean().writeLog("文件检测程序未运行");
			}
		}catch(Exception e){
  			e.printStackTrace();
		}
		MatchSpecialFileThread.MatchSpecialStatus=0;//检测线程的状态变回来
		CheckRule.runningStatus=0;//状态改变回来
	}else  if("searchthreadstatus".equals(operation)){//查看线程是否正在运行
			if(MatchSpecialFileThread.MatchSpecialStatus==1){
				out.print("{\"status\":\"false\"}");
			}else{
				out.print("{\"status\":\"ok\"}");
			}
	}else  if("stoploadtable".equals(operation)){//用来阻塞页面加载的
	    while(MatchSpecialFileThread.MatchSpecialStatus==1){
			Thread.sleep(5000);
			continue;
		}
		out.print("{\"status\":\"ok\"}");
	}else{
		String ruleid = Util.null2String(request.getParameter("ruleid"));
		String filepath = Util.null2String(request.getParameter("filepath")).trim();
		filepath = java.net.URLDecoder.decode(filepath,"UTF-8").trim();
		String checktype = Util.null2String(request.getParameter("checktype"),"0");
		String fileids=Util.null2String(request.getParameter("fileids"),"-1");
		String isWorkflow=Util.null2String(request.getParameter("isWorkflow"),"false");
		JSONObject object = new JSONObject();
		if(operation == null || "".equals(operation)) {
			out.print(object.toString());
		} else if("matchspecialfile".equals(operation)){
		    if(CheckRule.runningStatus==1){
		        return;
			}else{
		        try{
					CheckRule.runningStatus=1;//将运行状态置成1
					MatchSpecialFileThread.MatchSpecialStatus=1;//将线程状态置成1
					MatchSpecialFileThread maft=new MatchSpecialFileThread(ruleid,filepath,checktype,fileids,isWorkflow);
					Thread thread=new Thread(maft);
					thread.setName("executematchSpecialFile");
					thread.start();
				}catch(Exception e){
					e.printStackTrace();
		            new  BaseBean().writeLog("execute matschspecialFile error :info "+e.toString());
				}
			}
		}
	}



%>