checkDBOperation.jsp 8.19 KB
<%@ page import="weaver.hrm.User" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="org.json.JSONObject" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="java.io.File" %>
<%@ page import="weaver.file.FileBackup" %>
<%@ page import="java.lang.reflect.Constructor" %>
<%@ page import="weaver.system.ThreadWorkTimer" %>
<%@ page import="weaver.system.ThreadWork" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
	String operationtype=Util.null2String(request.getParameter("operationtype"));
	if("upgradeendecomfirmsave".equals(operationtype)) {
		User user = HrmUserVarify.getUser (request , response) ;
		boolean isadmin = false;
		if(user==null) {
			//return;
		} else {
			String loginid = user.getLoginid();
			RecordSet rs2 = new RecordSet();
			rs2.executeQuery("select 1 from hrmresourcemanager where loginid = ?",loginid);
			if(rs2.next()) {
				isadmin = true;
			}
		}
		/**
		 * 执行保存系统周期的操作
		 */
		JSONObject json=new JSONObject();
		if(user==null){
			json.put("status","1");
			json.put("message","请先使用管理员账号登陆");
		}else if(!isadmin){
			json.put("status","1");
			json.put("message","请用管理员账号进行操作");
		}else{
			String filesystembackuptime=Util.null2String(request.getParameter("filesystembackuptime"));
			String filebakpath=Util.null2String(request.getParameter("filebakpath"));
			// String filepath = Util.null2String(request.getParameter("filepath"));
			new BaseBean().writeLog("文件备份周期:"+filesystembackuptime);
			if(filesystembackuptime.equals("")){
				json.put("status","1");
				json.put("message","文件备份周期不能为空");
			}else{
				try{
					int backuptime=Integer.parseInt(filesystembackuptime);
					if(backuptime<0||backuptime>24){
						json.put("status","1");
						json.put("message","文件备份周期不符合规则");
					}else{
						if(!"".equals(filebakpath)){
							File file=new File(filebakpath);
							if(!file.exists() || !file.isDirectory()){
								json.put("status","1");
								json.put("message","文件备份目录不存在");
								response.getWriter().print(json.toString());
								return;
							}
						}

						backuptime=backuptime*60;
						RecordSet rs=new RecordSet();
						String sql="update SystemSet set filesystembackuptime='"+backuptime+"' ";

						if(!"".equals(filebakpath)){
							sql=sql+" ,filesystembackup='"+filebakpath+"'";
						}
						rs.execute(sql);
						try{
							FileBackup fileBackup=new FileBackup();
							Class class1=Class.forName("weaver.system.ThreadWorkTimer");
							if(class1!=null){
								Constructor c = class1.getConstructor(long.class,ThreadWork.class);
								if(c!=null){
									ThreadWorkTimer threadWork=(ThreadWorkTimer)c.newInstance(backuptime*60,fileBackup);
									if(threadWork!=null){
										threadWork.start();
									}
								}
							}
						}catch (Exception e){
							e.printStackTrace();
						}
						json.put("status","0");
					}
				}catch(Exception e){
					e.printStackTrace();
					json.put("status","1");
					json.put("message","文件备份周期保存出错,请联系技术人员进行解决");
				}
			}
		}
		response.getWriter().print(json.toString());
		return;
	}else if("getbakspaceInfo".equals(operationtype)) {
		User user = HrmUserVarify.getUser (request , response) ;
		if(user==null){
			return;
		}

		JSONObject json=new JSONObject();
		long  needBakFileSize=0;//需要备份的文件大小
		long bakSpaceSize=0;//已经备份的文件大小

		RecordSet rs1=new RecordSet();

		/**
		 * 计算需要备份文件的大小
		 */
		StringBuffer bakFileIds=new StringBuffer();
		int index=0;
		//计算已经备份的空间的大小
		rs1.executeQuery(" select distinct imageFileId from ImageFileBackUp ");

		while(rs1.next()){
			index++;
			if(bakFileIds.length()>0){
				bakFileIds.append(",'"+Util.null2String(rs1.getString("imageFileId"))+"'");
			}else{
				bakFileIds.append("'"+Util.null2String(rs1.getString("imageFileId"))+"'");
			}
			if(index>100){
				RecordSet rstemp=new RecordSet();
				rstemp.executeQuery("select  fileSize from imagefile where imagefileid in("+bakFileIds+")");
				while(rstemp.next()){
					try{
						String tem=Util.null2String(rstemp.getString("fileSize"));
						if(tem.equals("")||tem.equals("-1")){
							continue;
						}

						needBakFileSize=needBakFileSize+Integer.parseInt(tem);
					}catch(Exception e){
						e.printStackTrace();
					}
				}
				bakFileIds=new StringBuffer();
				index=0;
			}
		}

		bakFileIds=new StringBuffer();
		index=0;
		rs1.executeQuery(" select distinct mailResourceFileid from MailResourceFileBackup ");
		while(rs1.next()){
			index++;
			if(bakFileIds.length()>0){
				bakFileIds.append(",'"+Util.null2String(rs1.getString("mailResourceFileid"))+"'");
			}else{
				bakFileIds.append("'"+Util.null2String(rs1.getString("mailResourceFileid"))+"'");
			}
			if(index>100){
				RecordSet rstemp=new RecordSet();
				rstemp.executeQuery("select  filesize from MailResourceFile where id in("+bakFileIds+")");
				while(rstemp.next()){
					try{
						String tem=Util.null2String(rstemp.getString("fileSize"));
						if(tem.equals("")||tem.equals("-1")){
							continue;
						}
						needBakFileSize=needBakFileSize+Integer.parseInt(tem);
					}catch(Exception e){
						e.printStackTrace();
					}
				}
				bakFileIds=new StringBuffer();
				index=0;
			}
		}


		rs1.executeQuery("select  lastbackupimagefileid,lastbackupmailfileid from FileBackupIndex");
		String lastbackupimagefileid="";//知识最后备份的id
		String  lastbackupmailfileid="";//邮件最后备份的id
		if(rs1.next()){
			lastbackupimagefileid=Util.null2String(rs1.getString("lastbackupimagefileid"));
			lastbackupmailfileid=Util.null2String(rs1.getString("lastbackupmailfileid"));
		}
		if(lastbackupimagefileid.equals("")){
			lastbackupimagefileid="0";
		}
		if(lastbackupmailfileid.equals("")){
			lastbackupmailfileid="0";
		}
		//   new  BaseBean().writeLog("执行的sql:"+" select filesize from imagefile where imageFileId>"+lastbackupimagefileid);
		rs1.executeQuery(" select filesize from imagefile where imageFileId>?",lastbackupimagefileid);
		while(rs1.next()){
			try{
				String tem=Util.null2String(rs1.getString("fileSize"));
				if(tem.equals("")||tem.equals("-1")){
					continue;
				}
				needBakFileSize=needBakFileSize+Integer.parseInt(tem);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		rs1.executeQuery(" select  filesize from MailResourceFile where id>?",lastbackupmailfileid);
		while(rs1.next()){
			try{
				String tem=Util.null2String(rs1.getString("filesize"));
				if(tem.equals("")||tem.equals("-1")){
					continue;
				}
				needBakFileSize=needBakFileSize+Integer.parseInt(tem);

			}catch(Exception e){
				e.printStackTrace();
			}
		}

		/**
		 * 计算已经备份的文件大小
		 */

		rs1.executeQuery(" select filesize from imagefile where imageFileId<=?",lastbackupimagefileid);
		while(rs1.next()){
			try{
				String tem=Util.null2String(rs1.getString("fileSize"));
				if(tem.equals("")||tem.equals("-1")){
					continue;
				}
				bakSpaceSize=bakSpaceSize+Integer.parseInt(tem);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		rs1.executeQuery(" select  filesize from MailResourceFile where id<=?",lastbackupmailfileid);
		// new  BaseBean().writeLog(needBakFileSize+"执行的sql:"+" select  filesize from MailResourceFile where id>"+lastbackupmailfileid);
		while(rs1.next()){
			try{
				String tem=Util.null2String(rs1.getString("filesize"));
				if(tem.equals("")||tem.equals("-1")){
					continue;
				}
				bakSpaceSize=bakSpaceSize+Integer.parseInt(tem);

			}catch(Exception e){
				e.printStackTrace();
			}
		}

		if(needBakFileSize<=0){
			needBakFileSize=0;
		}else{
			needBakFileSize= (int)Math.ceil(needBakFileSize*1.000000/(1024*1024));
		}
		if(bakSpaceSize<=0){
			bakSpaceSize=0;
		}else{
			bakSpaceSize=(int)Math.ceil(bakSpaceSize*1.000000/(1024*1024));
		}
		//new  BaseBean().writeLog("已经备份的:"+bakSpaceSize+"-----------------需要备份的---"+needBakFileSize);
		json.put("needBakFileSize",needBakFileSize);
		json.put("bakSpaceSize",bakSpaceSize);




		response.getWriter().print(json.toString());
		return;
	}
%>