AffairTypeAction.java
上传用户:lm2018
上传日期:2015-12-12
资源大小:30449k
文件大小:15k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. //Created by MyEclipse Struts
  2. // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xsl
  3. package com.oa.module.affair.affairtype;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.io.OutputStream;
  10. import java.io.PrintWriter;
  11. import java.io.UnsupportedEncodingException;
  12. import java.lang.reflect.InvocationTargetException;
  13. import java.util.List;
  14. import java.util.Map;
  15. import com.oa.module.affair.affairdao.IAffair;
  16. import com.oa.module.affair.affairdao.TAffair;
  17. import com.oa.module.affair.affairpower.Transpower;
  18. import com.oa.module.affair.affairtype.AffairTypeForm;
  19. import com.oa.module.office.role.RoleDAO;
  20. import com.oa.module.office.user.Tuser;
  21. import com.oa.module.office.user.UserDAO;
  22. import com.oa.util.ToolUtil;
  23. import com.oa.util.XPage;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import javax.servlet.http.HttpSession;
  27. import org.apache.commons.beanutils.BeanUtils;
  28. import org.apache.struts.action.ActionForm;
  29. import org.apache.struts.action.ActionForward;
  30. import org.apache.struts.action.ActionMapping;
  31. import org.apache.struts.actions.DispatchAction;
  32. import org.apache.xalan.lib.Redirect;
  33. import org.jdom.Document;
  34. import org.jdom.Element;
  35. import org.jdom.output.Format;
  36. import org.jdom.output.XMLOutputter;
  37. import org.springframework.web.servlet.view.RedirectView;
  38. /** 
  39.  * 事务类别Action
  40.  * MyEclipse Struts
  41.  * Creation date: 01-20-2008
  42.  * 
  43.  * XDoclet definition:
  44.  * @struts.action path="/affairType" name="AffairTypeForm" input="/Jsp_file/affair/addtranstype.jsp" parameter="task" scope="request" validate="true"
  45.  */
  46. public class AffairTypeAction extends DispatchAction {
  47. // --------------------------------------------------------- Instance Variables
  48. private IAffair affairdao ;
  49. private UserDAO userdao;
  50. private RoleDAO roledao;
  51. // --------------------------------------------------------- Methods
  52. public ActionForward getlist(
  53. ActionMapping mapping,
  54. ActionForm form,
  55. HttpServletRequest request,
  56. HttpServletResponse response) throws IllegalAccessException, InvocationTargetException{
  57. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  58. HttpSession httpsession  = request.getSession();
  59. Tuser user = (Tuser)httpsession.getAttribute("user");
  60. PrintWriter out = null;
  61. try {
  62. out = response.getWriter();
  63. } catch (IOException e1) {
  64. // TODO 自动生成 catch 块
  65. e1.printStackTrace();
  66. }
  67. if (user != null) {
  68. int currentPage = 1;
  69. try {
  70. currentPage = Integer.parseInt(request.getParameter("currentPage"));
  71. } catch (Exception e) {
  72. currentPage = 1;
  73. }
  74. int count = 10;
  75. Transtype typebean = new Transtype();
  76. try {
  77. BeanUtils.copyProperties(typebean, affairTypeForm);
  78. } catch (IllegalAccessException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. } catch (InvocationTargetException e) {
  82. // TODO Auto-generated catch block
  83. e.printStackTrace();
  84. }
  85. XPage typepage = affairdao.gettypelist(currentPage, count, typebean);
  86. request.setAttribute("typepage", typepage);
  87. return mapping.findForward("getlist");
  88. }else {
  89. out.print("<script>alert('登录时间过期,请重新登录');"
  90. + "window.top.location.href='" + request.getContextPath()
  91. + "/Jsp_file/login/login.jsp';");
  92. out.print("</script>");
  93. }
  94. return null;
  95. }
  96. /** 
  97.  * Method execute
  98.  * @param mapping
  99.  * @param form
  100.  * @param request
  101.  * @param response
  102.  * @return ActionForward
  103.  * @throws InvocationTargetException 
  104.  * @throws IllegalAccessException 
  105.  * @throws IOException 
  106.  */
  107. public ActionForward addtype(
  108. ActionMapping mapping,
  109. ActionForm form,
  110. HttpServletRequest request,
  111. HttpServletResponse response) throws IllegalAccessException, InvocationTargetException{
  112. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  113. // TODO Auto-generated method stub
  114. String date = ToolUtil.getDate();
  115. String filename = System.currentTimeMillis() + ".xml";
  116. affairTypeForm.setTxmlpath(filename);
  117. affairTypeForm.setTtime(date);
  118. HttpSession httpsession  = request.getSession();
  119. Tuser user = (Tuser)httpsession.getAttribute("user");
  120. affairTypeForm.setUno(user.getUno());
  121. String tstep = request.getParameter("tstep");
  122. int count = 0;
  123. if(tstep!=null){
  124.  count = Integer.parseInt(tstep);
  125. }
  126. Transtype type = new Transtype();
  127. type.setTrid(request.getParameter("transroleid0"));
  128. BeanUtils.copyProperties(type, affairTypeForm);
  129. for (int i = 0; i < count; i++) {
  130. Transpower power = new Transpower();
  131. power.setTranstype(type);
  132. power.setTpid(i+1);
  133. power.setRqid(request.getParameter("roleid"+i));
  134. power.setUno(request.getParameter("userid"+i));
  135. type.getTranspower().add(power);
  136. }
  137. boolean flag = this.affairdao.addAffairType(type,request);
  138. ;
  139. String[] transroleid = request.getParameter("transroleid0").split(",");
  140. this.affairdao.addtyperole(type.getRtid(),transroleid);
  141. if (flag == true) {
  142.     //把事务环节写到XML文件
  143. Document doc = new Document();
  144. Element root = new Element("steps");
  145. int stepCount = Integer.valueOf(request.getParameter("tstep")).intValue();
  146. for (int i = 0; i < stepCount; i++) {
  147. Element step = new Element("step");
  148. Element id = new Element("id");
  149. id.setText("" + (i + 1));
  150. Element userid = new Element("userid");
  151. userid.setText(request.getParameter("userid" + i));
  152. Element roleid = new Element("roleid");
  153. roleid.setText(request.getParameter("roleid" + i));
  154. step.addContent(id);
  155. step.addContent(userid);
  156. step.addContent(roleid);
  157. root.addContent(step);
  158. }
  159. doc.addContent(root);
  160. Format format = Format.getCompactFormat();
  161. format.setIndent("  ");
  162. format.setEncoding("gb2312");
  163. XMLOutputter out = new XMLOutputter(format);
  164. OutputStream fileout = null;
  165. String path = servlet.getServletContext().getRealPath("upload")+"/affairXml/" + File.separator + filename;
  166. try {
  167. fileout = new FileOutputStream(path);
  168. out.output(doc, fileout);
  169. response.getWriter().println("<script>alert('添加成功');");
  170. response.getWriter().println("</script>");
  171. affairTypeForm.setTask("getlist");
  172. return mapping.findForward("getlist");
  173. } catch (FileNotFoundException e) {
  174. try {
  175. response.getWriter().print("<script>alert('添加失败');window.history.back();</script>");
  176. } catch (IOException e1) {
  177. // TODO 自动生成 catch 块
  178. e1.printStackTrace();
  179. }
  180. // TODO 自动生成 catch 块
  181. e.printStackTrace();
  182. } catch (IOException e) {
  183. // TODO 自动生成 catch 块
  184. e.printStackTrace();
  185. }
  186. }
  187. return null;
  188. }
  189. public ActionForward edittype(
  190. ActionMapping mapping,
  191. ActionForm form,
  192. HttpServletRequest request,
  193. HttpServletResponse response) throws IllegalAccessException, InvocationTargetException{
  194. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  195. String transID = request.getParameter("rtid");
  196. boolean flag = this.affairdao.isused(transID);
  197. if (flag == true) {
  198. request.setAttribute("msg","该事务正在使用中,不能进行修改");
  199. return new ActionForward("/Jsp_file/msg.jsp");
  200. } else {
  201. Map transrole = affairdao.getrole(transID);
  202. Map affair = affairdao.getaffair(transID);
  203. int count = Integer.valueOf(affair.get("tstep").toString()).intValue();
  204. String dir = servlet.getServletContext().getRealPath("upload")+ "\affairXml" + File.separator+ affair.get("txmlpath").toString();
  205. List translist= affairdao.getSteps(dir, count);
  206. if(translist==null){
  207. request.setAttribute("msg","找不到该XML文件");
  208. return new ActionForward("/Jsp_file/msg.jsp");
  209. }else{
  210. request.setAttribute("translist", translist);
  211. affairTypeForm.setTname(affair.get("tname").toString());
  212. affairTypeForm.setRtid(Integer.parseInt(transID));
  213. request.setAttribute("transrole", transrole);
  214. request.setAttribute("rtid",transID);
  215. affairTypeForm.setTask("editedtype");
  216. }
  217. return mapping.findForward("edit");
  218. }
  219. }
  220. public ActionForward editedtype(
  221. ActionMapping mapping,
  222. ActionForm form,
  223. HttpServletRequest request,
  224. HttpServletResponse response) throws IllegalAccessException, InvocationTargetException{
  225. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  226. System.out.println("edited");
  227. String transID = request.getParameter("rtid");
  228. String filename = System.currentTimeMillis() + ".xml";
  229. String dir = servlet.getServletContext().getRealPath("upload")+ "\affairXml";
  230. affairTypeForm.setTxmlpath(filename);
  231. affairTypeForm.setRtid(Integer.parseInt(transID));
  232. //先删除后再重新添加
  233. boolean isdel = false;
  234. boolean flag0 = affairdao.deltyperole(transID);
  235. if(flag0){
  236. isdel = affairdao.delaffair(transID,dir);
  237. }
  238. if(isdel){
  239. String date = ToolUtil.getDate();
  240. affairTypeForm.setTtime(date);
  241. HttpSession httpsession  = request.getSession();
  242. Tuser user = (Tuser)httpsession.getAttribute("user");
  243. affairTypeForm.setUno(user.getUno());
  244. String tstep = request.getParameter("tstep");
  245. int count = 0;
  246. if(tstep!=null){
  247.  count = Integer.parseInt(tstep);
  248. }
  249. Transtype type = new Transtype();
  250. type.setTrid(request.getParameter("transroleid0"));
  251. BeanUtils.copyProperties(type, affairTypeForm);
  252. for (int i = 0; i < count; i++) {
  253. Transpower power = new Transpower();
  254. power.setTranstype(type);
  255. power.setTpid(i+1);
  256. power.setRqid(request.getParameter("roleid"+i));
  257. power.setUno(request.getParameter("userid"+i));
  258. type.getTranspower().add(power);
  259. }
  260. boolean flag = this.affairdao.addAffairType(type,request);
  261. String[] transroleid = request.getParameter("transroleid0").split(",");
  262. this.affairdao.addtyperole(type.getRtid(),transroleid);
  263. if (flag == true) {
  264.     //把事务环节写到XML文件
  265. Document doc = new Document();
  266. Element root = new Element("steps");
  267. int stepCount = Integer.valueOf(request.getParameter("tstep")).intValue();
  268. for (int i = 0; i < stepCount; i++) {
  269. Element step = new Element("step");
  270. Element id = new Element("id");
  271. id.setText("" + (i + 1));
  272. Element userid = new Element("userid");
  273. userid.setText(request.getParameter("userid" + i));
  274. Element roleid = new Element("roleid");
  275. roleid.setText(request.getParameter("roleid" + i));
  276. step.addContent(id);
  277. step.addContent(userid);
  278. step.addContent(roleid);
  279. root.addContent(step);
  280. }
  281. doc.addContent(root);
  282. Format format = Format.getCompactFormat();
  283. format.setIndent("  ");
  284. format.setEncoding("gb2312");
  285. XMLOutputter out = new XMLOutputter(format);
  286. OutputStream fileout = null;
  287. String path = servlet.getServletContext().getRealPath("upload")+"\affairXml" + File.separator + filename;
  288. try {
  289. fileout = new FileOutputStream(path);
  290. out.output(doc, fileout);
  291. response.getWriter().println("<script>alert('修改成功');");
  292. response.getWriter().println("</script>");
  293. affairTypeForm.setTask("getlist");
  294. return mapping.findForward("query");
  295. } catch (FileNotFoundException e) {
  296. try {
  297. response.getWriter().print("<script>alert('修改失败');window.history.back();</script>");
  298. } catch (IOException e1) {
  299. // TODO 自动生成 catch 块
  300. e1.printStackTrace();
  301. }
  302. // TODO 自动生成 catch 块
  303. e.printStackTrace();
  304. } catch (IOException e) {
  305. // TODO 自动生成 catch 块
  306. e.printStackTrace();
  307. }
  308. }
  309. }
  310. return null;
  311. }
  312. public ActionForward deltype(
  313. ActionMapping mapping,
  314. ActionForm form,
  315. HttpServletRequest request,
  316. HttpServletResponse response) throws IllegalAccessException, InvocationTargetException{
  317. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  318. System.out.println("deltype");
  319. String transID = request.getParameter("rtid");
  320. String dir = servlet.getServletContext().getRealPath("upload")+ "/affairXml";
  321. affairTypeForm.setRtid(Integer.parseInt(transID));
  322. try {
  323. boolean isdel =  false;
  324. boolean flag0 = affairdao.deltyperole(transID);
  325. if(flag0){
  326. isdel = affairdao.delaffair(transID,dir);
  327. }
  328. if(isdel){
  329. response.getWriter().println("<script>alert('删除成功');");
  330. response.getWriter().println("</script>");
  331. affairTypeForm.setTask("getlist");
  332. return mapping.findForward("query");
  333. }else{
  334. response.getWriter().print("<script>alert('删除失败');window.history.back();</script>");
  335. }
  336. }catch (IOException e) {
  337. try {
  338. response.getWriter().print("<script>alert('删除失败');window.history.back();</script>");
  339. } catch (IOException e1) {
  340. // TODO 自动生成 catch 块
  341. e1.printStackTrace();
  342. }
  343. // TODO 自动生成 catch 块
  344. e.printStackTrace();
  345. }
  346. return null;
  347. }
  348. public ActionForward getUserRole(
  349. ActionMapping mapping,
  350. ActionForm form,
  351. HttpServletRequest request,
  352. HttpServletResponse response) throws UnsupportedEncodingException {
  353. request.setCharacterEncoding("GBK");
  354. response.setCharacterEncoding("GBK");
  355. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  356. List list = null;
  357. String type = request.getParameter("type");
  358. String name = request.getParameter("name");
  359. if (type.equals("user")) {
  360. list = this.userdao.getuser();
  361. } else {
  362. list = this.roledao.getrole();
  363. }
  364. request.setAttribute("list", list);
  365. request.setAttribute("type", type);
  366. request.setAttribute("id", name);
  367. return new ActionForward("/Jsp_file/affair/roleuser.jsp");
  368. }
  369. public ActionForward checkname(
  370. ActionMapping mapping,
  371. ActionForm form,
  372. HttpServletRequest request,
  373. HttpServletResponse response) throws UnsupportedEncodingException {
  374. request.setCharacterEncoding("GBK");
  375. response.setCharacterEncoding("GBK");
  376. AffairTypeForm affairTypeForm = (AffairTypeForm) form;
  377. try {
  378. PrintWriter out = response.getWriter();
  379. String type = request.getParameter("type");
  380. String message = null;
  381. boolean flag = true;
  382. flag = this.affairdao.checkName(affairTypeForm);
  383. if(type!=null){
  384. if(type.equals("add")){
  385. if(flag){
  386. message ="<a style='color: red' >名称被使用了</a>";
  387. } else {
  388. message = "<a style='color: #00cc00' >名称可以使用</a>";
  389. }
  390. }else if(type.equals("edit")){
  391. String rtid = request.getParameter("rtid");
  392. Map bean  = affairdao.getaffair(rtid);
  393. String oldname = (String) bean.get("tname");
  394. System.out.println(oldname);
  395. if(affairTypeForm.getTname().equals(oldname)){
  396. message = "<a style='color: #00cc00' >名称可以修改</a>";
  397. }else{
  398. if(flag){
  399. message ="<a style='color: red' >名称被使用了</a>";
  400. } else {
  401. message = "<a style='color: #00cc00' >名称可以使用</a>";
  402. }
  403. }
  404. }
  405. out.print(message);
  406. out.flush();
  407. out.close();
  408. }
  409. } catch (IOException e) {
  410. // TODO 自动生成 catch 块
  411. e.printStackTrace();
  412. }
  413. return null;
  414. }
  415. public IAffair getAffairdao() {
  416. return affairdao;
  417. }
  418. public void setAffairdao(IAffair affairdao) {
  419. this.affairdao = affairdao;
  420. }
  421. public UserDAO getUserdao() {
  422. return userdao;
  423. }
  424. public void setUserdao(UserDAO userdao) {
  425. this.userdao = userdao;
  426. }
  427. public RoleDAO getRoledao() {
  428. return roledao;
  429. }
  430. public void setRoledao(RoleDAO roledao) {
  431. this.roledao = roledao;
  432. }
  433. }