predefinedflow_modify.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:12k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <html>
  3. <head>
  4. <title>审批流程管理</title>
  5. <style type="text/css">
  6. <!--
  7. .flowspan {
  8. background: White;
  9. border: 1px solid Black;
  10. text-align: center;
  11. padding-left: 10px;
  12. padding-right: 10px;
  13. padding-top: 6px;
  14. padding-bottom: 6px;
  15. width: 200px;
  16. }
  17. -->
  18. </style>
  19. <%@ include file="../inc/nocache.jsp"%>
  20. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  21. <link rel="stylesheet" href="common.css" type="text/css">
  22. <%@ include file="inc/nocache.jsp"%>
  23. <script language="javascript">
  24. <!--
  25. function setperson(p)
  26. {
  27. form2.person.value = p
  28. }
  29. function btnsort_onclick() {
  30.   len = form1.flowid.options.length;
  31.   var flowids = "";
  32.   for (i=0; i<len; i++)
  33.   {
  34. form1.flowid.options(i).selected = true;
  35. if (flowids=="")
  36. flowids += form1.flowid.options(i).value;
  37. else
  38. flowids += ","+form1.flowid.options(i).value;
  39.   }
  40.   var r = window.confirm("请确定是否要重新排序?")
  41.   if (!r)
  42.     return false
  43.   form1.action = "?mode=sort&flowids="+flowids;
  44.   form1.submit();
  45. }
  46. function btnup_onclick() {
  47. index = form1.flowid.selectedIndex
  48. if (index==0)
  49. return;
  50. temp1 = form1.flowid.options(index).text
  51. temp2 = form1.flowid.options(index).value
  52. form1.flowid.options(index).value = form1.flowid.options(index-1).value;
  53. form1.flowid.options(index).text = form1.flowid.options(index-1).text;
  54. form1.flowid.options(index-1).value = temp2
  55. form1.flowid.options(index-1).text = temp1;
  56. form1.flowid.selectedIndex = index-1;
  57. }
  58. function btndown_onclick() {
  59. index = form1.flowid.selectedIndex
  60. if (index==form1.flowid.length-1)
  61. return;
  62. temp1 = form1.flowid.options(index).text
  63. temp2 = form1.flowid.options(index).value
  64. form1.flowid.options(index).value = form1.flowid.options(index+1).value;
  65. form1.flowid.options(index).text = form1.flowid.options(index+1).text;
  66. form1.flowid.options(index+1).value = temp2
  67. form1.flowid.options(index+1).text = temp1;
  68. form1.flowid.selectedIndex = index+1;
  69. }
  70. function delperson()
  71. {
  72. errmsg = "";
  73. if (form1.flowid.value=="")
  74. errmsg  += "请选择需删除的审批人!";
  75. if (errmsg != "")
  76. {
  77. alert(errmsg);
  78. return;
  79. }
  80. if (!confirm("您确定要删除"+form1.flowid.options(form1.flowid.selectedIndex).text+"吗?"))
  81. return;
  82. form1.action = "defineflow.jsp?mode=del";
  83. form1.submit();
  84. }
  85. function seteditperson()
  86. {
  87. form3.person.value = form1.flowid.options(form1.flowid.selectedIndex).text
  88. form3.id.value = form1.flowid.options(form1.flowid.selectedIndex).value
  89. }
  90. function form1_onsubmit()
  91. {
  92. errmsg = "";
  93. if (form1.flowid.value=="")
  94. errmsg  += "请选择需维护的代码!";
  95. if (errmsg!="")
  96. {
  97. alert(errmsg);
  98. return false;
  99. }
  100. form1.action="class1m.jsp";
  101. }
  102. function form2_onsubmit()
  103. {
  104. errmsg = "";
  105. if (form2.person.value=="")
  106. errmsg += "请输入审批人!n";
  107. if (errmsg!="")
  108. {
  109. alert(errmsg);
  110. return false;
  111. }
  112. }
  113. function form3_onsubmit()
  114. {
  115. if (form3.person.value=="")
  116. {
  117. alert("请输入审批人");
  118. return false;
  119. }
  120. }
  121. //-->
  122. </script>
  123. </head>
  124. <body bgcolor="#FFFFFF" text="#000000">
  125. <%@ include file="inc/inc.jsp"%>
  126. <jsp:useBean id="fchar" scope="page" class="cn.js.fan.util.StrUtil"/>
  127. <jsp:useBean id="userservice" scope="page" class="com.redmoon.oa.person.UserService"/>
  128. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  129. <table width="494" border="0" align="center" cellpadding="0" cellspacing="0">
  130.   <tr>
  131.     <td height="23" valign="bottom" background="images/tab-b-top.gif">     <span class="right-title">审 
  132.       批 流 程</span></td>
  133.   </tr>
  134.   <tr>
  135.     <td valign="top" background="images/tab-b-back.gif"><br>
  136.       <%
  137. String priv="upload";
  138. if (!privilege.isUserPrivValid(request,priv))
  139. {
  140. out.println(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  141. return;
  142. }
  143. String document_id = request.getParameter("document_id");
  144. String document_name = fchar.UnicodeToGB(request.getParameter("docname"));
  145. if (document_id==null)
  146. {
  147. out.println(fchar.makeErrMsg("文件标识为空!"));
  148. return;
  149. }
  150. %>
  151.       <jsp:useBean id="conn" scope="page" class="com.redmoon.oa.db.Conn"/> <jsp:setProperty name="conn" property="POOLNAME" value="ttoa"/> 
  152.       <%
  153. String mode=fchar.getNullString(request.getParameter("mode"));
  154. if (mode.equals("del"))
  155. {
  156. String id=fchar.UnicodeToGB(request.getParameter("flowid"));
  157. String sql = "select sort,document_id from doc_flow where id="+id;
  158. ResultSet rs = conn.executeQuery(sql);
  159. String sort = "0", document_id1="";
  160. if (rs!=null && rs.next()) {
  161. sort = rs.getString(1);
  162. document_id1 = rs.getString(2);
  163. }
  164. if (rs!=null) {
  165. rs.close();
  166. rs = null;
  167. }
  168. if (id!=null)
  169. {
  170. if (conn.executeUpdate("delete from doc_flow where id="+id)==0)
  171. {
  172. out.println(fchar.p_center("删除失败!"));
  173. }
  174. sql = "update doc_flow set sort=sort-1 where document_id="+document_id1+" and sort>"+sort;
  175. conn.executeUpdate(sql);
  176. }
  177. }
  178. if (mode.equals("edit"))
  179. {
  180. String id=request.getParameter("id");
  181. String person = fchar.UnicodeToGB(request.getParameter("person"));
  182. if (id!=null)
  183. {
  184. if (!userservice.isUserExist(person)) {
  185. out.print(fchar.Alert("用户 "+person+" 不存在!"));
  186. }
  187. else
  188. if (conn.executeUpdate("update doc_flow set person="+fchar.sqlstr(person)+" where id="+id)==0)
  189. {
  190. out.println(fchar.p_center("<font color=red>修改失败!</font>"));
  191. }
  192. }
  193. }
  194. if (mode.equals("add"))
  195. {
  196. String person = fchar.UnicodeToGB(request.getParameter("person"));
  197. if (!userservice.isUserExist(person)) {
  198. out.print(fchar.Alert("用户 "+person+" 不存在!"));
  199. }
  200. else
  201. if (person!=null)
  202. {
  203. String sql = "select sort,id from doc_flow where ischecked=0 and document_id="+document_id+" order by sort desc";
  204. int mysort = -1;
  205. ResultSet rs = conn.executeQuery(sql);
  206. if (rs!=null && rs.next())
  207. {
  208. mysort = rs.getInt(1);
  209. }
  210. if (rs!=null) {
  211. rs.close();
  212. rs = null;
  213. }
  214. if (mysort==-1)//第一个流程
  215. {
  216. mysort = 0;
  217. sql = "insert into doc_flow (ischecking,person,document_id,sort) values (1,"+fchar.sqlstr(person)+","+document_id+","+mysort+")";
  218. }
  219. else {
  220. mysort += 1;
  221. sql = "insert into doc_flow (person,document_id,sort) values ("+fchar.sqlstr(person)+","+document_id+","+mysort+")";
  222. }
  223. if (conn.executeUpdate(sql)==0)
  224. {
  225. out.println(fchar.p_center("添加审批人"+person+"时出错!"));
  226. }
  227. }
  228. }
  229. //排序
  230. if (mode.equals("sort"))
  231. {
  232. String flowid[] = ((String)request.getParameter("flowids")).split(",");
  233. String sql = "select MAX(sort) from doc_flow where ischecked=1 and document_id="+document_id;
  234. int sort = 0;
  235. ResultSet rs = conn.executeQuery(sql);
  236. if (rs!=null && rs.next())
  237. {
  238. sort = rs.getInt(1);
  239. }
  240. if (rs!=null) {
  241. rs.close();
  242. rs = null;
  243. }
  244. if (sort!=0)
  245. sort++;
  246. sql = "";
  247. for (int i=0 ;i<flowid.length; i++)
  248. {
  249. if (sql.equals("") && sort==0)//如果sort为0表示之前不存在已审批的流程,所以置第一个流程为ischecking=1即待审批流程
  250. sql += "update doc_flow set ischecking=1,sort="+sort+" where id="+flowid[i]+";";
  251. else
  252. sql += "update doc_flow set sort="+sort+" where id="+flowid[i]+";";
  253. sort++;
  254. }
  255. if (conn.executeUpdate(sql)==0)
  256. {
  257. out.print(fchar.p_center("排序时出错,操作未能成功!"+"<br>"));//成功时返回值也可能为0
  258. }
  259. }
  260. %>
  261.       <table class=p9 width="80%" border="0" cellpadding="2" cellspacing="0" align="center" height="351">
  262.         <form id="form1" action="defineflow.jsp" method=post name="form1" onSubmit="return form1_onsubmit()">
  263.           <tr bgcolor="#C4DAFF"> 
  264.             <td height="22" colspan="2" align="center" class="stable"><%=document_name%> 审批流程管理</td>
  265.           </tr>
  266.           <tr> 
  267.             <td width="73%" align="center" bgcolor="#F7F7F7" class="stable"> <%
  268. boolean ischecked = false;
  269. String options = "";
  270. String sql = "select id,person,ischecked from doc_flow where document_id="+document_id+" order by sort";
  271. ResultSet rs = conn.executeQuery(sql);
  272. while(rs.next())
  273. {
  274. ischecked = rs.getBoolean(3);
  275. if (!ischecked)
  276. {
  277. options += "<option value="+rs.getString(1)+">"+rs.getString(2)+"</option>";
  278. }
  279. }
  280. if (rs!=null) {
  281. rs.close();
  282. rs = null;
  283. }
  284. %> <select id=flowid name=flowid size=2 onChange="seteditperson()" style="HEIGHT: 200px; WIDTH: 220px" multiple>
  285.                 <%=options%> </select> </td>
  286.             <td width="27%" align="center" bgcolor="#F7F7F7" class="stable"> <p> 
  287.                 <input name="reset" type="reset" class="singleboarder" value="重置">
  288.                 <br>
  289.                 <br>
  290.                 <input name=del type=button class="singleboarder" onClick="delperson()" value="删除">
  291.                 <br>
  292.                 <br>
  293.                 <input name=btnup type=button class="singleboarder" id=btnup onClick="return btnup_onclick()" value=上移 language=javascript>
  294.                 <br>
  295.                 <br>
  296.                 <input name=btndown type=button class="singleboarder" id=btndown onClick="return btndown_onclick()" value=下移 language=javascript>
  297.                 <br>
  298.                 <br>
  299.                 <input name=btnsort type=button class="singleboarder" id=btnsort onClick="btnsort_onclick()" value=排序 language=javascript>
  300.                 <br>
  301.                 <input type=hidden name="document_id" value="<%=document_id%>">
  302.               </p></td>
  303.           </tr>
  304.         </form>
  305.         <form id=form3 action="?mode=edit&document_id=<%=document_id%>" onSubmit="return form3_onsubmit()" method=post name=form3>
  306.           <tr> 
  307.             <td align="center" bgcolor="#F7F7F7" class="stable">审批人 
  308.               <input name=person> <input type=hidden name=id></td>
  309.             <td align="center" bgcolor="#F7F7F7" class="stable"><a href="#" onClick="javascript:showModalDialog('person_sel.jsp?op=flowmodify',window.self,'dialogWidth:480px;dialogHeight:320px;status:no;help:no;')">选择</a> 
  310.               <input name="submit22" type=submit class="singleboarder" style="COLOR: #4b0082" value="修改">
  311.             </td>
  312.           </tr>
  313.         </form>
  314.         <form id=form2 action="?mode=add&document_id=<%=document_id%>" method=post name=form2 onSubmit="return form2_onsubmit()">
  315.           <tr> 
  316.             <td align="center" bgcolor="#F7F7F7" class="stable"> 审批人 
  317.               <input name=person> </td>
  318.             <td align="center" bgcolor="#F7F7F7" class="stable"> <a href="#" onClick="javascript:showModalDialog('person_sel.jsp',window.self,'dialogWidth:480px;dialogHeight:320px;status:no;help:no;')">选择</a> 
  319.               <input name="submit2" type=submit class="singleboarder" style="COLOR: #8b0000" value="添加">
  320.             </td>
  321.           </tr>
  322.         </form>
  323.       </table>
  324.       
  325.       <table class=p9 width="80%" border="0" cellpadding="2" cellspacing="0" align="center">
  326.         <tr bgcolor="#C4DAFF"> 
  327.           <td width="100%" height="22" align="center" class="stable">审 批 流 程 状 
  328.             态</td>
  329.         </tr>
  330.         <tr> 
  331.           <td align="center" bgcolor="#F7F7F7" class="stable"> <%
  332. sql = "select id,person,ischecked from doc_flow where document_id="+document_id+" order by sort";
  333. rs = conn.executeQuery(sql);
  334. //out.println("共有记录"+conn.getRows());
  335. while(rs.next())
  336. {
  337. ischecked = rs.getBoolean(3);
  338. if (!ischecked)
  339. {
  340. out.println("<div class=flowspan>"+rs.getString(2)+"<br>未审批</div><img src=images/nextflow.gif>");
  341. }
  342. else
  343. {
  344. out.println("<div class=flowspan>"+rs.getString(2)+"<br><font color=red>已审批</font></div><img src=images/nextflow.gif>");
  345. }
  346. }
  347. if(conn.getRows()<=0)
  348. {
  349. out.println("<div class=flowspan>未设流程</div>");
  350. }
  351. else{
  352. out.println("<div class=flowspan>流程完成</div>");
  353. }
  354. if (rs!=null) {
  355. rs.close();
  356. rs = null;
  357. }
  358. if (conn!=null) {
  359. conn.close();
  360. conn = null;
  361. }
  362. %> </td>
  363.         </tr>
  364.       </table></td>
  365.   </tr>
  366.   <tr>
  367.     <td height="9"><img src="images/tab-b-bot.gif" width="494" height="9"></td>
  368.   </tr>
  369. </table>
  370. </body>
  371. </html>