MassMaintOperation.jsp
3.93 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
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.Util" %>
<%@page import="weaver.hrm.User"%>
<%@page import="weaver.hrm.HrmUserVarify"%>
<%@page import="weaver.matrix.MatrixUtil"%>
<jsp:useBean id="RecordSet" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="MatrixManager" class="weaver.matrix.MatrixManager" scope="page" />
<%
/*用户验证*/
User user = HrmUserVarify.getUser (request , response) ;
if(user==null) {
response.sendRedirect("/login/Login.jsp");
return;
}
request.setCharacterEncoding("UTF-8");
//矩阵id
String matrixid = Util.null2String(request.getParameter("matrixid"));
//需要被替换的人员id
String olduserid = Util.null2String(request.getParameter("olduserid")).trim();
//需要 替换成人员的id, 可为空
String newuserid = Util.null2String(request.getParameter("newuserid")).trim();
String method = Util.null2String(request.getParameter("method"));
//System.out.println("olduserid="+olduserid+"====newuserid="+newuserid);
String issystem = "";
RecordSet.execute("select issystem from MatrixInfo where id= "+matrixid);
if(RecordSet.next()){
issystem = RecordSet.getString("issystem");
}
//处理 替换 和 删除。根据 matrixid olduserid 查询符合条件的记录数
if("replacerecord".equals(method)){
//查询在 matrixid 矩阵中,涉及 olduserid 有多少条记录
//判断表名是否创建
String sql ="select * from MatrixFieldInfo where matrixid="+matrixid;
List<String> backfiledlist = new ArrayList<String>();
RecordSet.execute(sql);
//获取当前表的所有字段,不包括id
while(RecordSet.next()){
//只获取 取值 字段
if(!"0".equals(RecordSet.getString("fieldtype"))){
backfiledlist.add(RecordSet.getString("fieldname"));
}
}
String backvalue = "1";
try{
//说明有记录
if(backfiledlist.size() != 0){
//因这些数据是由用户维护,整记录数不会太多,不会超过 十万。 所以可一次性把所有数据查询,然后循环替换
//存储所有的记录
List<Properties> records = new ArrayList<Properties>();
Properties pro = null;
sql = "select * from Matrixtable_"+matrixid;
RecordSet.execute(sql);
//是否有记录
while(RecordSet.next()){
pro = new Properties();
for(String fieldname : backfiledlist){
String value = RecordSet.getString(fieldname);
//值 替换
if(!"".equals(value) && value != null){
//System.out.print(value+"========");
if(value.contains(","+olduserid+",")){
value = value.replaceAll(","+olduserid+",",","+newuserid+",");
}else if(value.startsWith(olduserid+",")){
value = value.replaceAll(olduserid+",",newuserid+",");
}else if(value.endsWith(","+olduserid)){
value = value.replaceAll(","+olduserid,","+newuserid);
}else if(value.equals(olduserid)){
value = newuserid;
}
//System.out.println(value+"========");
}
//存储替换后的值
pro.put(fieldname,value);
}
//将id 放到 prop 中
pro.put("uuid",RecordSet.getString("uuid"));
// 加入到 list 中
records.add(pro);
}
StringBuffer sb = null;
for(Properties prop : records){
sb = new StringBuffer();
sb.append("update ").append(" Matrixtable_"+matrixid).append(" set ")
.append(MatrixManager.createUpdateColSql(prop, backfiledlist))
.append(" where uuid").append(" = '").append(prop.get("uuid")).append("'");
//System.out.println(sb+"===========");
RecordSet.execute(sb+"");
}
}
if("1".equals(issystem) || "2".equals(issystem)){
MatrixUtil.sysMatrixDataToSubOrDep(matrixid,Util.getIntValue(issystem));
}
}catch(Exception e){
backvalue = e.getMessage();
}
//返回记录数
out.print(backvalue);
return;
}
%>