checkDBOperation.jsp
8.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<%@ 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;
}
%>