//orgInsert.jsp插入页面
<%@ include file="connectionDB.jsp"%>
<%
request.setCharacterEncoding("big5");
String fDep=request.getParameter("fDep");
String dep=request.getParameter("dep");
//out.println(fDep);
//out.println(dep);
boolean autoCommit=conn.getAutoCommit();
try{
conn.setAutoCommit(false);
String queryF=" select total " +
" from ngb_org "+
" where name='"+fDep+"' ORDER BY TOTAL ";
//out.println(queryF+"<br>");
String tempF=null;
PreparedStatement ps=conn.prepareStatement(queryF);
ResultSet rs=ps.executeQuery();
while(rs.next())
{ tempF=rs.getString("total");}
//out.println(tempF+"<br>");
char tempFa=tempF.charAt(0);
char tempFb=tempF.charAt(1);
char tempFc=tempF.charAt(2);
char tempFd=tempF.charAt(3);
char tempFe=tempF.charAt(4);
char tempFf=tempF.charAt(5);
int tempFg=Integer.parseInt(tempF.substring(4,6));
String tempC=null;
String tempCC=null;
if(tempFd=='A')
{tempC="%B%"; tempCC="B";}
else if(tempFd=='B')
{tempC="%C%"; tempCC="C";}
else if (tempFd=='C')
{tempC="%D%"; tempCC="D";}
else if (tempFd=='D')
{tempC="%E%"; tempCC="E";}
String queryColumn=" select count(*) "+
" from ngb_org "+
" where total like '"+tempC+"' ";
String queryDefference=" select total "+
" from ngb_org "+
" where total like ? ";
int totalNumber=0;
//統計同層的部門最大值
ps=conn.prepareStatement(queryColumn);
ResultSet rs1=ps.executeQuery();
while(rs1.next())
{totalNumber+=rs1.getInt(1);}
String tempFDD=Character.toString(tempFd);
String totalNewTemp=tempFDD+tempFg+tempCC+(totalNumber+1);
String totalNew=null;
int sameMax=1;
String totalSame=tempFDD+"%"+tempCC+"%";
//查詢本層是否有相同的total值
ps=conn.prepareStatement(queryDefference);
ps.setString(1, totalSame);
ResultSet rsd=ps.executeQuery();
//boolean same=false;
while(rsd.next())
{
//找出同层最大的值
String same1=rsd.getString("total");
String same1Temp1=same1.substring(4,6);
int sameMaxTemp=Integer.parseInt(same1Temp1);
//out.println(sameMaxTemp+" & ");
if(sameMax<sameMaxTemp)
sameMax=sameMaxTemp;
//out.println(sameMax+"//"+"<br>");
}
//如果值小于10,把它赋值为10
if(sameMax<10)
{sameMax+=8;}
totalNew=tempFDD+tempFg+tempCC+(sameMax+1);
//out.println(totalNew);
String insertDep= " insert into ngb_org(id, p_layer, p_id, c_layer, c_id, total, name, sn, create_by, create_date, update_by,update_date) "+
" values(ngb_org_seq.nextval, '"+tempFd+"', "+tempFg+", '"+tempCC+"',"+(sameMax+1)+" , '"+totalNew+"', '"+dep+"', NULL, NULL, NULL, NULL, NULL) ";
ps=conn.prepareStatement(insertDep);
//out.println(insertDep+"<br>");
int result =ps.executeUpdate();
if(result>0)
{
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Big5">
<title>新增部門</title>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
.style2 {color: #000066}
-->
</style>
</head>
<body>
<p> </p>
<p> </p>
<p> </p>
<table width="38%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="17" bgcolor="#0099FF" scope="col"><div align="center" class="style1">信息添加成功</div></td>
</tr>
<tr>
<td height="160" colspan="2" bgcolor="#E6F0FF" scope="row"><div align="center" class="style2">部門: <%=dep%> 添加成功!</div> <br> <div align="center" class="style2"><a href="orgManage.jsp">繼續添加</a> <a href="orgView.jsp">返回組織架構</a></div></td>
</tr>
</table>
</body>
<%
}
conn.commit();
}
catch (SQLException se1)
{se1.printStackTrace();
conn.rollback();
}
finally{
conn.setAutoCommit(autoCommit);
conn.close();
}
%>
</html>