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

Jsp/Servlet

开发平台:

Java

  1. package com.oa.module.affair.affairdao;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.lang.reflect.InvocationTargetException;
  5. import java.sql.Connection;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. import javax.servlet.http.HttpServletRequest;
  15. import org.apache.commons.beanutils.BeanUtils;
  16. import org.hibernate.Query;
  17. import org.hibernate.Session;
  18. import org.hibernate.SessionFactory;
  19. import org.hibernate.Transaction;
  20. import org.jdom.Document;
  21. import org.jdom.Element;
  22. import org.jdom.input.SAXBuilder;
  23. import org.springframework.orm.hibernate3.HibernateTemplate;
  24. import com.oa.module.affair.affair.Transstep;
  25. import com.oa.module.affair.affairreq.AffairReqForm;
  26. import com.oa.module.affair.affairreq.Transreq;
  27. import com.oa.module.affair.affairtype.AffairTypeForm;
  28. import com.oa.module.affair.affairtype.Transtype;
  29. import com.oa.util.ToolUtil;
  30. import com.oa.util.XPage;
  31. /**
  32.  * 事务定制DAO接口实现
  33.  * @author admin
  34.  *
  35.  */
  36. public class TAffair implements IAffair {
  37. private SessionFactory sf;
  38. Session session = null;
  39. Transaction tx = null;
  40. // private HibernateTemplate ht = null;
  41. public SessionFactory getSf() {
  42. return sf;
  43. }
  44. public void setSf(SessionFactory sf) {
  45. this.sf = sf;
  46. }
  47. public boolean checkName(AffairTypeForm affairForm) {
  48. session = sf.openSession();
  49. Query query = session.createQuery("select a from Transtype a where a.tname=:tname");
  50. query.setParameter("tname",affairForm.getTname());
  51. int count = query.list().size();
  52. if(count>0)return true;
  53. else return false;
  54. }
  55. public boolean addAffairType(Transtype type, HttpServletRequest request) {
  56. try {
  57. session = sf.openSession();
  58. tx = session.beginTransaction();
  59. session.save(type);
  60. tx.commit();
  61. session.flush();
  62. return true;
  63. } catch (Exception e) {
  64. e.printStackTrace();
  65. tx.rollback();
  66. }finally{
  67. session.close();
  68. sf.close();
  69. }
  70. return false;
  71. }
  72. public boolean isused(String transID){
  73. Connection conn = null;
  74. Statement stmt = null;
  75. ResultSet rs = null;
  76. String sql = null;
  77. session = sf.openSession();
  78. sql = "select * from transreq t where t.tno =" + transID;
  79. session = sf.openSession();
  80. conn =session.connection();
  81. try {
  82. stmt = conn.createStatement();
  83. rs = stmt.executeQuery(sql);
  84. if(rs.next()){
  85. return true;
  86. }
  87. } catch (SQLException e) {
  88. // TODO 自动生成 catch 块
  89. e.printStackTrace();
  90. }finally {
  91. try {
  92. rs.close();
  93. stmt.close();
  94. conn.close();
  95. } catch (SQLException e) {
  96. // TODO 自动生成 catch 块
  97. e.printStackTrace();
  98. }
  99. }
  100. return false;
  101. }
  102. public HashMap getrole(String transID) {
  103. Connection conn = null;
  104. Statement stmt = null;
  105. ResultSet rs = null;
  106. String sql = null;
  107. String roleid = "";
  108. String rolename = "";
  109. HashMap role = new HashMap();
  110. session = sf.openSession();
  111. conn =session.connection();
  112. try {
  113. stmt = conn.createStatement();
  114. sql = "select t.trid from transtype t where t.rtid =" + transID;
  115. rs = stmt.executeQuery(sql);
  116. while (rs.next()) {
  117. if (roleid.equals("")) {
  118. roleid = rs.getString("trid");
  119. } else {
  120. roleid = roleid + "," + rs.getString("trid");
  121. }
  122. }
  123. role.put("roleid", roleid);
  124. sql = "select t.rid ,t.rname from trole t where t.rid in (" + roleid + ") order by t.rid";
  125. rs = stmt.executeQuery(sql);
  126. while (rs.next()) {
  127. if (rolename.equals("")) {
  128. rolename = rs.getString("rname");
  129. } else {
  130. rolename = rolename + "," + rs.getString("rname");
  131. }
  132. }
  133. role.put("rolename", rolename);
  134. } catch (SQLException e) {
  135. e.printStackTrace();
  136. } finally {
  137. try {
  138. rs.close();
  139. stmt.close();
  140. conn.close();
  141. } catch (SQLException e) {
  142. // TODO 自动生成 catch 块
  143. e.printStackTrace();
  144. }
  145. }
  146. return role;
  147. }
  148. public Map getaffair(String transID) {
  149. Connection conn = null;
  150. Statement stmt = null;
  151. ResultSet rs = null;
  152. String sql = null;
  153. HashMap affair = new HashMap();
  154. session = sf.openSession();
  155. sql = "select * from transtype t where t.rtid =" + transID;
  156. conn =session.connection(); 
  157. try {
  158. stmt = conn.createStatement();
  159. rs = stmt.executeQuery(sql);
  160. if (rs.next()) {
  161. affair.put("rtid", rs.getString("rtid"));
  162. affair.put("tname", rs.getString("tname"));
  163. affair.put("txmlpath", rs.getString("txmlpath"));
  164. affair.put("tstep", rs.getString("tstep"));
  165. }
  166. } catch (SQLException e) {
  167. e.printStackTrace();
  168. } finally {
  169. try {
  170. rs.close();
  171. stmt.close();
  172. conn.close();
  173. } catch (SQLException e) {
  174. // TODO 自动生成 catch 块
  175. e.printStackTrace();
  176. }
  177. }
  178. return affair;
  179. }
  180. public List getSteps(String dir, int count) {
  181. Map map = null;
  182. List translist = null;
  183. Connection conn = null;
  184. Statement stmt = null;
  185. ResultSet rs = null;
  186. String sql = null;
  187. session = sf.openSession();
  188. conn =session.connection();
  189. try{
  190. stmt = conn.createStatement();
  191. translist = new ArrayList();
  192. String userids = "";
  193. String roleids = "";
  194. SAXBuilder sb = new SAXBuilder();
  195. Document dos = sb.build(new FileInputStream(dir));
  196. Element root = dos.getRootElement();
  197. List list = root.getChildren();
  198. for (int i = 0; i < count; i++) {
  199. userids = "";//拥有的用户
  200. roleids = "";//拥有的角色
  201. Element allnode = (Element) list.get(i);
  202. List nodeList = allnode.getChildren();
  203. for (int j = 0; j < nodeList.size(); j++) {
  204. Element node = (Element) nodeList.get(j);
  205. if (node.getName().equals("userid")) {
  206. if (j == 0 || userids.trim().equals("")) {
  207. userids = userids + node.getText();
  208. }
  209. } else if (node.getName().equals("roleid")) {
  210. if (j == 0 || roleids.trim().equals("")) {
  211. roleids = roleids + node.getText();
  212. }
  213. }
  214. }
  215. map = new HashMap();
  216. if (userids != null && !userids.trim().equals("")) {
  217. // 获得用户名称
  218. String usernames = "";
  219. String[] users = userids.split(",");
  220. for (int j=0 ;j<users.length;j++){
  221. sql = "select UNO,UTRUENAME from tuser where UNO="+ users[j];
  222. rs = stmt.executeQuery(sql);
  223. while (rs.next()) {
  224. if (usernames.equals("")) {
  225. usernames = rs.getString("utruename");
  226. } else {
  227. usernames = usernames + ","+ rs.getString("utruename");
  228. }
  229. }
  230. }
  231. map.put("username", usernames);
  232. // map.put("userids", "userid" + i);
  233. map.put("userid", userids);
  234. }
  235. if (roleids != null && !roleids.trim().equals("")) {
  236. // 获得角色名
  237. String rolenames = "";
  238. String[] roles = roleids.split(",");
  239. for(int k=0;k<roles.length;k++){
  240. sql = "select t.rid,t.rname from trole t where t.rid =" + roles[k];
  241. rs = stmt.executeQuery(sql);
  242. while (rs.next()) {
  243. if (rolenames.equals("")) {
  244. rolenames = rs.getString("rname");
  245. } else {
  246. rolenames = rolenames + "," + rs.getString("rname");
  247. }
  248. }
  249. }
  250. map.put("rolename", rolenames);
  251. // map.put("roleids", "roleids" + i);
  252. map.put("roleid", roleids);
  253. }
  254. translist.add(map);
  255. }
  256. }catch(Exception e){
  257. // e.printStackTrace();
  258. return  null;
  259. }
  260. finally{
  261. }
  262. return translist;  
  263. }
  264. public XPage gettypelist(int currentPage, int count, Transtype typebean) {
  265. String hql="select a from Transtype a where 1=1";
  266. String path="/oa/affairType.do?task=getlist&";
  267. XPage page = new XPage();
  268. //开始设置xpage
  269. page.setCurrentPage(currentPage);
  270. page.setCount(count);
  271. //动态的构建hql语句和xpage的path
  272. if(typebean!=null){
  273. if(typebean.getTname()!=null&&!typebean.getTname().trim().equals("")){
  274. hql+=" and a.tname like :name";
  275. path+="tname="+typebean.getTname()+"&";
  276. }
  277. }
  278. //设置分页路径
  279. page.setPath(path);
  280. Session session = null;
  281. Query query =null;
  282. List list = null;
  283. try {
  284. session = sf.openSession();
  285. query = session.createQuery(hql);
  286. //设置查询参数
  287. if(typebean!=null){
  288. if(typebean.getTname()!=null&&!typebean.getTname().trim().equals("")){
  289. query.setParameter("name","%"+typebean.getTname()+"%");
  290. }
  291. }
  292. //获取总记录数
  293. int allcount = query.list().size();
  294. page.setAllCount(allcount);
  295. //得到分页显示数据
  296. query.setFirstResult((currentPage-1)*count);
  297. query.setMaxResults(count);
  298. list = query.list();
  299. page.setList(list);
  300. session.flush();
  301. } catch (Exception e) {
  302. e.printStackTrace();
  303. }finally{
  304. session.close();
  305. sf.close();
  306. }
  307. return page;
  308. }
  309. public boolean updateType(String transID ,HttpServletRequest request ) {
  310. Transtype type = new Transtype();
  311. int id = Integer.parseInt(transID);
  312. try {
  313. session = sf.openSession();
  314. type = (Transtype)session.get(Transtype.class,new Long(id));
  315. type.setTname(request.getParameter("tname"));
  316. tx = session.beginTransaction();
  317. session.update(type);
  318. tx.commit();
  319. session.flush();
  320. return true;
  321. } catch (Exception e) {
  322. e.printStackTrace();
  323. tx.rollback();
  324. }finally{
  325. session.close();
  326. sf.close();
  327. }
  328. return false;
  329. }
  330. public boolean deltyperole(String transID) {
  331. String sqls[] =new String[transID.length()];
  332. for(int i=0;i<sqls.length;i++){
  333. sqls[i] = "delete from ttyperole where rtid = "+transID;
  334. }
  335. boolean flag = this.executeUpdates(sqls);
  336. if(flag){
  337. return true;
  338. }
  339. return false;
  340. }
  341. public boolean delaffair(String rtid, String dir) {
  342. boolean flag = false;
  343. Session session = null;
  344. Transaction tx = null;
  345. // 先删除XML文件
  346. if (this.delXml(rtid, dir)) {
  347. try {
  348. int id = Integer.parseInt(rtid);
  349. session = this.sf.openSession();
  350. tx = session.beginTransaction();
  351. Transtype transtype = (Transtype)session.get(Transtype.class, new Long(id));
  352. session.delete(transtype);
  353. tx.commit();
  354. session.flush();
  355. flag = true;
  356. } catch (Exception e) {
  357. tx.rollback();
  358. e.printStackTrace();
  359. } finally {
  360. session.close();
  361. this.sf.close();
  362. }
  363. }else{
  364. try {
  365. int id = Integer.parseInt(rtid);
  366. session = this.sf.openSession();
  367. tx = session.beginTransaction();
  368. Transtype transtype = (Transtype)session.get(Transtype.class, new Long(id));
  369. session.delete(transtype);
  370. tx.commit();
  371. session.flush();
  372. flag = true;
  373. } catch (Exception e) {
  374. tx.rollback();
  375. e.printStackTrace();
  376. } finally {
  377. session.close();
  378. this.sf.close();
  379. }
  380. }
  381. return flag;
  382. }
  383. private boolean delXml(String rtid, String dir) {
  384. Session session = null;
  385. Connection conn = null;
  386. Statement stmt = null;
  387. ResultSet rs = null;
  388. String sql = null;
  389. boolean flag = false;
  390. sql = "select * from transtype where rtid  =" + rtid;
  391. session = this.sf.openSession();
  392. conn = session.connection();
  393. try {
  394. stmt = conn.createStatement();
  395. rs = stmt.executeQuery(sql);
  396. if (rs.next()) {
  397. File file = new File(dir + "/" + rs.getString("txmlpath"));
  398. file.delete();
  399. flag = true;
  400. }
  401. } catch (SQLException e) {
  402. flag = false;
  403. e.printStackTrace();
  404. } finally {
  405. try {
  406. rs.close();
  407. stmt.close();
  408. conn.close();
  409. } catch (SQLException e) {
  410. // TODO 自动生成 catch 块
  411. e.printStackTrace();
  412. }
  413. }
  414. return flag;
  415. }
  416. public List init(String uno) {
  417. Connection conn = null;
  418. Statement stmt = null;
  419. ResultSet rs = null;
  420. String sql = null;
  421. session = this.sf.openSession();
  422. conn = session.connection();
  423. List list = new ArrayList();
  424. try {
  425. sql = "select a.* from transtype a ,tuserrole b ,ttyperole c where b.uno =  " + uno
  426. + " and b.rid = c.rid and c.rtid = a.rtid";
  427. stmt = conn.createStatement();
  428. rs = stmt.executeQuery(sql);
  429. while (rs.next()) {
  430. Map map = new HashMap();
  431. map.put("rtid", rs.getString("rtid"));
  432. map.put("tname", rs.getString("tname"));
  433. map.put("txmlpath", rs.getString("txmlpath"));
  434. map.put("tstep", rs.getString("tstep"));
  435. list.add(map);
  436. }
  437. } catch (Exception e) {
  438. e.printStackTrace();
  439. list = null;
  440. } finally {
  441. try {
  442. rs.close();
  443. stmt.close();
  444. conn.close();
  445. } catch (SQLException e) {
  446. // TODO 自动生成 catch 块
  447. e.printStackTrace();
  448. }
  449. }
  450. return list;
  451. }
  452. public void addtyperole(long rtid, String[] rid) {
  453. String[] sqls = new String[rid.length];
  454. for(int i=0 ;i<rid.length;i++){
  455. sqls[i] = "insert into TTYPEROLE (TR_ID, RTID, RID)";
  456.         sqls[i] =sqls[i] +" values(seq_t_typerole.nextval,'"+String.valueOf(rtid)+"','"+rid[i]+"')";
  457. }
  458. boolean flag = this.executeUpdates(sqls);
  459. if(flag){
  460. }
  461. }
  462. public boolean executeUpdates(String[] sqls){
  463. Connection conn = null;
  464. Statement st = null;
  465. session = sf.openSession();
  466. conn =session.connection();
  467. try {
  468. conn.setAutoCommit(false);//设置不自动提交
  469. st = conn.createStatement();
  470. for(int i=0;i<sqls.length;i++){
  471. st.addBatch(sqls[i]);
  472. }
  473. int[] re=st.executeBatch();
  474. conn.commit();//提交事务
  475. if(re.length>0){
  476. return true;
  477. }
  478. } catch (SQLException e) {
  479. try {
  480. conn.rollback();//事务回顾
  481. } catch (SQLException e1) {
  482. // TODO Auto-generated catch block
  483. e1.printStackTrace();
  484. }
  485. e.printStackTrace();
  486. }finally{
  487. try {
  488. st.close();
  489. conn.close();
  490. } catch (SQLException e) {
  491. // TODO 自动生成 catch 块
  492. e.printStackTrace();
  493. }
  494. }
  495. return false;
  496. }
  497. public List getroles(String roleid) {
  498. List list = new ArrayList();
  499. Connection conn = null;
  500. Statement st = null;
  501. ResultSet rs = null;
  502. String sql =null;
  503. int count1 = 0 ;
  504. int count2 = 0 ;
  505. String[] roleids = roleid.split(",");
  506. session = sf.openSession();
  507. conn= session.connection();
  508. try {
  509. st = conn.createStatement();
  510. for (int i = 0; i < roleids.length; i++) {
  511. sql = "select uno from tuserrole t where t.rid =" + roleids[i];
  512. rs = st.executeQuery(sql);
  513. String userids = "";
  514. String username = "";
  515. Map userMap = new HashMap();
  516. while (rs.next()) {
  517. if (userids.equals("")) {
  518. userids = rs.getString("uno");
  519. } else {
  520. userids = userids + "," + rs.getString("uno");
  521. }
  522. count1 += 1;
  523. }
  524. if (!userids.equals("")) {
  525. String[] users = userids.split(",");
  526. count2 = users.length-1;
  527. for (int j = 0; j < users.length; j++) {
  528. sql = "select t.uno,t.utruename from tuser t where t.uno = "+ users[j] + " and t.uislocked=0";
  529. rs = st.executeQuery(sql);
  530. while (rs.next()) {
  531. if (username.equals("")) {
  532. username = rs.getString("utruename");
  533. } else {
  534. username = username + ","+ rs.getString("utruename");
  535. }
  536. }
  537. }
  538. if(count1>count2){
  539. userids ="";
  540. for(int m = 0;m<count2;m++){
  541. if (userids.equals("")) {
  542. userids = users[m];
  543. } else {
  544. userids = userids + "," +users[m];
  545. }
  546. }
  547. userMap.put("userid", userids);
  548. userMap.put("username", username);
  549. }else{
  550. userMap.put("userid", userids);
  551. userMap.put("username", username);
  552. }
  553. }
  554. list.add(userMap);
  555. }
  556. } catch (Exception e) {
  557. list = null;
  558. e.printStackTrace();
  559. // TODO: handle exception
  560. }finally{
  561. try {
  562. rs.close();
  563. st.close();
  564. conn.close();
  565. } catch (SQLException e) {
  566. // TODO 自动生成 catch 块
  567. e.printStackTrace();
  568. }
  569. }
  570. return list;
  571. }
  572. public boolean AffairReq(AffairReqForm affairReqForm,HttpServletRequest request) {
  573. Connection conn = null;
  574. Statement st = null;
  575. Statement st2 = null;
  576. boolean flag  = true;
  577. Transreq affaireq = new Transreq();
  578. Transstep affairstep = new Transstep();
  579. try {
  580. BeanUtils.copyProperties(affaireq, affairReqForm);
  581. } catch (IllegalAccessException e2) {
  582. // TODO 自动生成 catch 块
  583. e2.printStackTrace();
  584. } catch (InvocationTargetException e2) {
  585. // TODO 自动生成 catch 块
  586. e2.printStackTrace();
  587. }
  588. String ReqSql = null;
  589. String StepSql = null;
  590. long ReqID = getReqID(); 
  591. ReqSql = "insert into TRANSREQ (RQID, RTITLE, UNO, TNO, RGRADE, RSTARTTIME, RENDTIME, RNEXTTIME, RLASTTIME, RDETAIL, RSTATUS, RMEMO)";
  592. ReqSql = ReqSql + "values ("+ReqID+","+"'"+affaireq.getRtitle()+"','";
  593. ReqSql = ReqSql +affaireq.getUno()+"','";
  594. ReqSql = ReqSql +affaireq.getTno()+"','";
  595. ReqSql = ReqSql +affaireq.getRgrade()+"','";
  596. ReqSql = ReqSql +affaireq.getRstarttime()+"','";
  597. ReqSql = ReqSql +affaireq.getRendtime()+"','";
  598. ReqSql = ReqSql +affaireq.getRnexttime()+"','";
  599. ReqSql = ReqSql +affaireq.getRlasttime()+"','";
  600. ReqSql = ReqSql +affaireq.getRdetail()+"','";
  601. ReqSql = ReqSql +affaireq.getRstatus()+"','";
  602. ReqSql = ReqSql +affaireq.getRmemo()+"')";
  603. affairstep.setRqid(ReqID);
  604. affairstep.setScurrentid(1);
  605. affairstep.setUno(request.getParameter("userid"));
  606. affairstep.setSstatus("0");//当前状态
  607. affairstep.setSresult("0");
  608. affairstep.setSprestep(0);
  609. StepSql ="insert into TRANSSTEP (SID, RQID, SCURRENTID, UNO, SSTATUS, SPRESTEP, SNEXTUNO, SCURRENTTIME, SNEXTTIME, SRESULT, SDETAIL, SNAME, SPATH)";
  610. StepSql = StepSql+ "values ( SEQ_T_RANSSTEP.nextval,";
  611. StepSql = StepSql +ReqID+",";
  612. StepSql = StepSql +affairstep.getScurrentid()+",'";
  613. StepSql = StepSql +affairstep.getUno()+"','";
  614. StepSql = StepSql +affairstep.getSstatus()+"',";
  615. StepSql = StepSql +affairstep.getSprestep()+",'";
  616. StepSql = StepSql +affairstep.getSnextuno()+"','";
  617. StepSql = StepSql +affairstep.getScurrenttime()+"','";
  618. StepSql = StepSql +affairstep.getSnexttime()+"','";
  619. StepSql = StepSql +affairstep.getSresult()+"','";
  620. StepSql = StepSql +affairstep.getSdetail()+"','";
  621. StepSql = StepSql +affairstep.getSname()+"','";
  622. StepSql = StepSql +affairstep.getSpath()+"')";
  623. session = sf.openSession();
  624. conn =session.connection();
  625. try {
  626. conn.setAutoCommit(false);//设置不自动提交
  627. st = conn.createStatement();
  628. st2 = conn.createStatement();
  629. st.execute(ReqSql);
  630. st2.execute(StepSql);
  631. conn.commit();//提交事务
  632. } catch (SQLException e) {
  633. try {
  634. flag = false;
  635. conn.rollback();//事务回顾
  636. } catch (SQLException e1) {
  637. // TODO Auto-generated catch block
  638. e1.printStackTrace();
  639. }
  640. e.printStackTrace();
  641. }finally{
  642. try {
  643. st.close();
  644. st2.close();
  645. conn.close();
  646. } catch (SQLException e) {
  647. // TODO 自动生成 catch 块
  648. e.printStackTrace();
  649. }
  650. }
  651. return flag;
  652. }
  653. public boolean addaffairstep(Transstep ransstep) {
  654. try {
  655. session = sf.openSession();
  656. tx = session.beginTransaction();
  657. session.save(ransstep);
  658. tx.commit();
  659. session.flush();
  660. return true;
  661. }catch (Exception e) {
  662. e.printStackTrace();
  663. tx.rollback();
  664. }finally{
  665. session.close();
  666. sf.close();
  667. }
  668. return false;
  669. }
  670. private long getReqID(){
  671. long ReqID = 0;
  672. PreparedStatement ps = null;
  673. ResultSet rs = null;
  674. Connection conn = null;
  675. session = sf.openSession();
  676. conn =session.connection();
  677. String Sql = null;
  678. try {
  679. Sql = "select SEQ_T_RANSREQ.NEXTVAL as ReqID FROM  dual";
  680. ps = conn.prepareStatement(Sql);
  681. rs = ps.executeQuery();
  682. while (rs.next()) {
  683. ReqID = rs.getInt("ReqID");
  684. }
  685. } catch (Exception e) {
  686. e.printStackTrace();
  687. } finally {
  688. session.close();
  689. sf.close();
  690. }
  691. return ReqID;
  692. }
  693. public List reqList(int currentPage, int count, Transreq reqbean,HttpServletRequest request) {
  694. StringBuffer sql = new StringBuffer();
  695. StringBuffer centent = new StringBuffer();
  696. String rgrade = request.getParameter("rgrade");
  697. if(reqbean.getReqUsername()!=null&&!reqbean.getReqUsername().trim().equals("")){
  698. centent.append(" and usr.utruename like '%").append(reqbean.getReqUsername().trim()).append("%'");
  699. }
  700. if(rgrade !=null && !rgrade.trim().equals("")){
  701. centent.append(" and req.rgrade =").append(rgrade.trim()).append("");
  702. }
  703. if(reqbean.getRstarttime()!=null &&!reqbean.getRstarttime().trim().equals("")){
  704. centent.append(" and req.rlasttime between'").append(reqbean.getRstarttime().trim()).append("'");
  705. centent.append(" and '").append(reqbean.getRendtime().trim()).append("'");
  706. }
  707. sql.append("SELECT * FROM(")
  708. .append("select typ.tname,req.*,usr.utruename,ROWNUM AS num from transreq req ")
  709. .append("inner join tuser usr on req.uno =  usr.uno ")
  710. .append("inner join transtype typ on typ.rtid = req.tno where 1 = 1 and req.rstatus = '0' ")
  711. .append(centent)
  712. .append(")t WHERE ");
  713. sql.append(" t.num<=").append(currentPage*count);
  714. sql.append(" AND t.num>").append((currentPage-1)*count);
  715. sql.append(" order by t.rqid");
  716. Connection conn = null;
  717. Statement st = null;
  718. ResultSet rs = null;
  719. session = sf.openSession();
  720. conn = session.connection();
  721. List list = null;
  722. Transreq reqbeans = null;
  723. try {
  724. int i = 0 ;
  725. st = conn.createStatement();
  726. rs = st.executeQuery(sql.toString());
  727. list = new ArrayList();
  728. while (rs.next()) {
  729. i = i +1;
  730. reqbeans = new Transreq();
  731. reqbeans.setRqid(rs.getInt("RQID"));
  732. reqbeans.setRtitle(rs.getString("RTITLE"));
  733. reqbeans.setTname(rs.getString("TNAME"));
  734. reqbeans.setReqUsername(rs.getString("utruename"));
  735. reqbeans.setRgrade(rs.getString("rgrade"));
  736. reqbeans.setRlasttime(rs.getString("RLASTTIME"));
  737. list.add(reqbeans);
  738. }
  739. if (i == 0 ){
  740. list = null;
  741. }
  742. } catch (SQLException e) {
  743. // TODO Auto-generated catch block
  744. e.printStackTrace();
  745. } finally {
  746. session.close();
  747. sf.close();
  748. }
  749. return list;
  750. }
  751. public List getaudit(HttpServletRequest request) {
  752. List list = new ArrayList();
  753. Connection conn = null;
  754. Statement stmt = null;
  755. ResultSet rs = null;
  756. String sql = null;
  757. session = sf.openSession();
  758. conn = session.connection();
  759. Map affair = null;
  760. Map req = null;
  761. try {
  762. stmt = conn.createStatement();
  763. sql = "select a.rgrade ,a.tno ,a.rdetail ,a.rtitle ,b.tname,b.tstep ,c.sprestep ,a.rlasttime,c.sid";
  764. sql = sql +" from transreq a inner join transtype b on a.tno = b.rtid";
  765. sql = sql +" inner join transstep c on a.rqid = c.rqid where c.sstatus = '0' and a.rqid = ";
  766. String rqid = "0";
  767. if (request.getParameter("rqids")!=null && !request.getParameter("rqids").equals("")){
  768. rqid = request.getParameter("rqids");
  769. }
  770. sql = sql +rqid ;
  771. rs = stmt.executeQuery(sql);
  772. if (rs.next()) {
  773. affair = new HashMap();
  774. affair.put("sid",rs.getString("sid"));
  775. affair.put("rdetail", rs.getString("rdetail"));
  776. affair.put("rtitle", rs.getString("rtitle"));
  777. affair.put("tstep", rs.getString("tstep"));
  778. affair.put("rgrade", rs.getString("rgrade"));
  779. affair.put("tno", rs.getString("tno"));
  780. affair.put("rqid", rqid);
  781. affair.put("tname", rs.getString("tname"));
  782. affair.put("rlasttime", rs.getString("rlasttime"));
  783. affair.put("sprestep", rs.getString("sprestep"));
  784. }
  785. sql = "select a.rqid,a.rtitle,a.rgrade,a.rnexttime,a.rdetail,b.utruename ,a.rmemo";
  786. sql = sql +" from transreq a  inner join tuser b on a.uno = b.uno where   a.rqid = ";
  787. sql = sql +rqid ;
  788. rs = stmt.executeQuery(sql);
  789. if (rs.next()) {
  790. req = new HashMap();
  791. req.put("rqid",rs.getString("rqid"));
  792. req.put("rtitle",rs.getString("rtitle"));
  793. req.put("rgrade",rs.getString("rgrade"));
  794. req.put("rnexttime",rs.getString("rnexttime"));
  795. req.put("rdetail",rs.getString("rdetail"));
  796. req.put("utruename",rs.getString("utruename"));
  797. req.put("rmemo",rs.getString("rmemo"));
  798. }
  799. sql = "select  c.rqid,c.scurrentid,e.utruename,c.scurrenttime,c.snexttime,c.sname,c.spath "
  800. + " from transstep c "
  801. + " inner join transreq d on c.rqid = d.rqid "
  802. + " inner join tuser e on d.uno = e.uno"
  803. + " where  c.sstatus='1' and c.rqid = ";
  804. sql = sql +rqid +" order by c.scurrentid";
  805. rs = stmt.executeQuery(sql);
  806. while (rs.next()) {
  807. Map steps = new HashMap();
  808. steps.put("rqid",rs.getString("rqid"));
  809. steps.put("scurrentid",rs.getString("scurrentid"));
  810. steps.put("utruename",rs.getString("utruename"));
  811. steps.put("scurrenttime",rs.getString("scurrenttime"));
  812. steps.put("snexttime",rs.getString("snexttime"));
  813. steps.put("sname",rs.getString("sname"));
  814. steps.put("spath",rs.getString("spath"));
  815. list.add(steps);
  816. }
  817. request.setAttribute("req", req);
  818. request.setAttribute("affair", affair);
  819. } catch (SQLException e) {
  820. e.printStackTrace();
  821. list = null;
  822. }finally{
  823. session.close();
  824. sf.close();
  825. }
  826. return list;
  827. }
  828. public void setread(String rqid) {
  829. Connection conn = null;
  830. Statement st = null;
  831. String sql = "";
  832. sql = "update transstep set sstatus ='1' where rqid =" + rqid;
  833. session = sf.openSession();
  834. conn =session.connection();
  835. try {
  836. conn.setAutoCommit(false);//设置不自动提交
  837. st = conn.createStatement();
  838. st.execute(sql);
  839. conn.commit();//提交事务
  840. } catch (SQLException e) {
  841. try {
  842. conn.rollback();//事务回顾
  843. } catch (SQLException e1) {
  844. // TODO Auto-generated catch block
  845. e1.printStackTrace();
  846. }
  847. e.printStackTrace();
  848. }finally{
  849. try {
  850. st.close();
  851. conn.close();
  852. } catch (SQLException e) {
  853. // TODO 自动生成 catch 块
  854. e.printStackTrace();
  855. }
  856. }
  857. }
  858. public boolean affairPass(String tag, HttpServletRequest request, AffairReqForm affairReqForm) {
  859. Connection conn = null;
  860. Statement st = null;
  861. Statement st2 = null;
  862. Transstep affairstep = new Transstep();
  863. String sql = "";
  864. String StepSql = "";
  865. String sid = request.getParameter("sid");
  866. String rqid = request.getParameter("rqid");
  867. String stepid = request.getParameter("stepid");
  868. String nstepid = String.valueOf(Integer.parseInt(stepid)+1);
  869. session = sf.openSession();
  870. conn =session.connection();
  871. //审核通过
  872. if (tag.equals("noend")) {
  873. // 当前环节实际完成时间
  874. String date = ToolUtil.getDate();
  875. //先把上一环节的数据插入完整 ,并更改状态
  876. sql = "update transstep set scurrenttime ='"+date+"',";
  877. sql = sql +" snextuno='"+request.getParameter("userid")+"',";
  878. sql = sql +" snexttime='"+request.getParameter("snexttime")+"',";
  879. sql = sql +" sresult='3',";//0:待办,1:审核中,2:未通过,3:通过
  880. sql = sql +" sdetail='"+request.getParameter("memo")+"',";
  881. sql = sql +" sname='"+affairReqForm.getSname()+"',";
  882. sql = sql +" spath='"+affairReqForm.getSpath()+"'";
  883. sql = sql + " where sid =" + sid;
  884. affairstep.setUno(request.getParameter("userid"));
  885. affairstep.setSstatus("0");//当前状态
  886. affairstep.setSresult("1");
  887. StepSql ="insert into TRANSSTEP (SID, RQID, SCURRENTID, UNO, SSTATUS, SPRESTEP, SNEXTUNO, SCURRENTTIME, SNEXTTIME, SRESULT, SDETAIL, SNAME, SPATH)";
  888. StepSql = StepSql+ "values ( SEQ_T_RANSSTEP.nextval,";
  889. StepSql = StepSql +rqid+",";
  890. StepSql = StepSql +nstepid+",'";
  891. StepSql = StepSql +affairstep.getUno()+"','";
  892. StepSql = StepSql +affairstep.getSstatus()+"',";
  893. StepSql = StepSql +stepid+",'";
  894. StepSql = StepSql +affairstep.getSnextuno()+"','";
  895. StepSql = StepSql +affairstep.getScurrenttime()+"','";
  896. StepSql = StepSql +affairstep.getSnexttime()+"','";
  897. StepSql = StepSql +affairstep.getSresult()+"','";
  898. StepSql = StepSql +affairstep.getSdetail()+"','";
  899. StepSql = StepSql +affairstep.getSname()+"','";
  900. StepSql = StepSql +affairstep.getSpath()+"')";
  901. try {
  902. conn.setAutoCommit(false);//设置不自动提交
  903. st = conn.createStatement();
  904. st2 = conn.createStatement();
  905. st.execute(sql);
  906. st2.execute(StepSql);
  907. conn.commit();//提交事务
  908. return true;
  909. } catch (SQLException e) {
  910. try {
  911. conn.rollback();//事务回顾
  912. } catch (SQLException e1) {
  913. // TODO Auto-generated catch block
  914. e1.printStackTrace();
  915. }
  916. e.printStackTrace();
  917. }finally{
  918. try {
  919. st.close();
  920. st2.close();
  921. conn.close();
  922. } catch (SQLException e) {
  923. // TODO 自动生成 catch 块
  924. e.printStackTrace();
  925. }
  926. }
  927. //插入下一环节的数据
  928. }
  929.       //审核通过并完结该事务
  930. if (tag.equals("end")) {
  931. String date = ToolUtil.getDate();
  932. //插入发起表 的事务结束时间
  933. String seqSql = "";
  934. seqSql =" update transreq set rendtime = '"+date+"',RSTATUS ='3'  where rqid='"+rqid+"'";
  935. //先把上一环节的数据插入完整 ,并更改状态
  936. sql = "update transstep set scurrenttime ='"+date+"',";
  937. sql = sql +" snextuno='"+request.getParameter("userid")+"',";
  938. sql = sql +" snexttime='"+request.getParameter("snexttime")+"',";
  939. sql = sql +" sresult='3',";//0:待办,1:审核中,2:未通过,3:通过
  940. sql = sql +" sdetail='"+request.getParameter("memo")+"',";
  941. sql = sql +" sname='"+affairReqForm.getSname()+"',";
  942. sql = sql +" spath='"+affairReqForm.getSpath()+"'";
  943. sql = sql + " where sid =" + sid;
  944. try {
  945. conn.setAutoCommit(false);//设置不自动提交
  946. st = conn.createStatement();
  947. st2 = conn.createStatement();
  948. st.execute(sql);
  949. st2.execute(seqSql);
  950. conn.commit();//提交事务
  951. return true;
  952. } catch (SQLException e) {
  953. try {
  954. conn.rollback();//事务回顾
  955. } catch (SQLException e1) {
  956. // TODO Auto-generated catch block
  957. e1.printStackTrace();
  958. }
  959. e.printStackTrace();
  960. }finally{
  961. try {
  962. st.close();
  963. st2.close();
  964. conn.close();
  965. } catch (SQLException e) {
  966. // TODO 自动生成 catch 块
  967. e.printStackTrace();
  968. }
  969. }
  970. }
  971.   //审核不通过返回上一环节
  972. if (tag.equals("back")) {
  973. //如果是第一环节,要把
  974. int id = Integer.parseInt(stepid);
  975. String tmpid = "";
  976. String seqSql = "";
  977. if(id>1){
  978. tmpid = String.valueOf(id-1);
  979. sql = "delete from  transstep  where rqid = '"+ rqid +"'";
  980. seqSql =" update transstep set sstatus ='0' where rqid ='"+tmpid+"'";
  981. }else{
  982. sql = "update transstep set sstatus ='0' where rqid =" + rqid;
  983. }
  984. try {
  985. conn.setAutoCommit(false);//设置不自动提交
  986. st = conn.createStatement();
  987. st2 = conn.createStatement();
  988. st.execute(sql);
  989. st2.execute(seqSql);
  990. conn.commit();//提交事务
  991. return true;
  992. } catch (SQLException e) {
  993. try {
  994. conn.rollback();//事务回顾
  995. } catch (SQLException e1) {
  996. // TODO Auto-generated catch block
  997. e1.printStackTrace();
  998. }
  999. e.printStackTrace();
  1000. }finally{
  1001. try {
  1002. st.close();
  1003. st2.close();
  1004. conn.close();
  1005. } catch (SQLException e) {
  1006. // TODO 自动生成 catch 块
  1007. e.printStackTrace();
  1008. }
  1009. }
  1010. }
  1011. // 审核不通过并完结该事务
  1012. if (tag.equals("nopass")) {
  1013. String date = ToolUtil.getDate();
  1014. //插入发起表 的事务结束时间
  1015. String seqSql = "";
  1016. seqSql =" update transreq set rendtime = '"+date+"' and RSTATUS ='1' where rqid='"+rqid+"'";
  1017. //先把上一环节的数据插入完整 ,并更改状态
  1018. sql = "update transstep set scurrenttime ='"+date+"',";
  1019. sql = sql +" snextuno='"+request.getParameter("userid")+"',";
  1020. sql = sql +" snexttime='"+request.getParameter("snexttime")+"',";
  1021. sql = sql +" sresult='2',";//0:待办,1:审核中,2:未通过,3:通过
  1022. sql = sql +" sdetail='"+request.getParameter("memo")+"',";
  1023. sql = sql +" sname='"+affairReqForm.getSname()+"',";
  1024. sql = sql +" spath='"+affairReqForm.getSpath()+"'";
  1025. sql = sql + " where sid =" + sid;
  1026. try {
  1027. conn.setAutoCommit(false);//设置不自动提交
  1028. st = conn.createStatement();
  1029. st2 = conn.createStatement();
  1030. st.execute(sql);
  1031. st2.execute(seqSql);
  1032. conn.commit();//提交事务
  1033. return true;
  1034. } catch (SQLException e) {
  1035. try {
  1036. conn.rollback();//事务回顾
  1037. } catch (SQLException e1) {
  1038. // TODO Auto-generated catch block
  1039. e1.printStackTrace();
  1040. }
  1041. e.printStackTrace();
  1042. }finally{
  1043. try {
  1044. st.close();
  1045. st2.close();
  1046. conn.close();
  1047. } catch (SQLException e) {
  1048. // TODO 自动生成 catch 块
  1049. e.printStackTrace();
  1050. }
  1051. }
  1052. }
  1053. return false;
  1054. }
  1055. public List mydealList(AffairReqForm affairReqForm, HttpServletRequest request) {
  1056. // TODO 自动生成方法存根
  1057. return null;
  1058. }
  1059. public List mysendList(AffairReqForm affairReqForm, HttpServletRequest request) {
  1060. // TODO 自动生成方法存根
  1061. return null;
  1062. }
  1063. public List myreqList(int currentPage, int count, Transreq reqbean, HttpServletRequest request) {
  1064. String uno = (String) request.getAttribute("uno");
  1065. StringBuffer sql = new StringBuffer();
  1066. StringBuffer centent = new StringBuffer();
  1067. String rgrade = request.getParameter("rgrade");
  1068. if(reqbean.getReqUsername()!=null&&!reqbean.getReqUsername().trim().equals("")){
  1069. centent.append(" and c.utruename like '%").append(reqbean.getReqUsername().trim()).append("%'");
  1070. }
  1071. if(rgrade !=null && !rgrade.trim().equals("")){
  1072. centent.append("and b.rgrade =").append(rgrade.trim()).append("");
  1073. }
  1074. if(reqbean.getRstarttime()!=null &&!reqbean.getRstarttime().trim().equals("")){
  1075. centent.append(" and b.rlasttime between'").append(reqbean.getRstarttime().trim()).append("'");
  1076. centent.append(" and '").append(reqbean.getRendtime().trim()).append("'");
  1077. }
  1078. sql.append("SELECT * FROM(")
  1079. .append("select a.SCURRENTID,b.rqid , c.utruename,b.rtitle,b.rgrade,a.scurrenttime,d.tname,a.sresult,ROWNUM as num from transstep a ")
  1080. .append(" left join transreq b on a.rqid = b.rqid ")
  1081. .append(" left join tuser c on b.uno = c.uno")
  1082. .append(" left join transtype d on d.rtid = b.tno  where a.sstatus<>'0'  and c.uno = '").append(uno).append("'")
  1083. .append(centent)
  1084. .append(")t WHERE ");
  1085. sql.append(" t.num<=").append(currentPage*count);
  1086. sql.append(" AND t.num>").append((currentPage-1)*count);
  1087. Connection conn = null;
  1088. Statement st = null;
  1089. ResultSet rs = null;
  1090. session = sf.openSession();
  1091. conn = session.connection();
  1092. List list = null;
  1093. Transreq reqbeans = null;
  1094. try {
  1095. int i = 0 ;
  1096. st = conn.createStatement();
  1097. rs = st.executeQuery(sql.toString());
  1098. list = new ArrayList();
  1099. while (rs.next()) {
  1100. i = i +1;
  1101. reqbeans = new Transreq();
  1102. reqbeans.setRqid(rs.getInt("RQID"));
  1103. reqbeans.setCurrentid(rs.getString("SCURRENTID"));
  1104. reqbeans.setRtitle(rs.getString("RTITLE"));
  1105. reqbeans.setTname(rs.getString("TNAME"));
  1106. reqbeans.setRresult(rs.getString("sresult"));
  1107. reqbeans.setReqUsername(rs.getString("utruename"));
  1108. reqbeans.setRgrade(rs.getString("rgrade"));
  1109. reqbeans.setRlasttime(rs.getString("scurrenttime"));
  1110. list.add(reqbeans);
  1111. }
  1112. // request.setAttribute("currentid",);
  1113. if (i == 0 ){
  1114. list = null;
  1115. }
  1116. } catch (SQLException e) {
  1117. // TODO Auto-generated catch block
  1118. e.printStackTrace();
  1119. } finally {
  1120. session.close();
  1121. sf.close();
  1122. }
  1123. return list;
  1124. }
  1125. public List myarrairList(int currentPage, int count, Transreq reqbean, HttpServletRequest request) {
  1126. String uno = (String) request.getAttribute("uno");
  1127. StringBuffer sql = new StringBuffer();
  1128. StringBuffer centent = new StringBuffer();
  1129. String rgrade = request.getParameter("rgrade");
  1130. if(rgrade !=null && !rgrade.trim().equals("")){
  1131. centent.append("and a.rgrade =").append(rgrade.trim()).append("");
  1132. }
  1133. if(reqbean.getRstarttime()!=null &&!reqbean.getRstarttime().trim().equals("")){
  1134. centent.append(" and a.rlasttime between'").append(reqbean.getRstarttime().trim()).append("'");
  1135. centent.append(" and '").append(reqbean.getRendtime().trim()).append("'");
  1136. }
  1137. sql.append("SELECT * FROM(")
  1138. .append("select a.rqid,a.rtitle,a.rgrade,b.tname,a.rstatus, a.rlasttime, ")
  1139. .append(" ROWNUM as num from transreq a  left join transtype b on b.rtid = a.tno ")
  1140. .append(" left join tuser c on c.uno = a.uno where 1= 1 and c.uno = '").append(uno).append("'")
  1141. .append(centent)
  1142. .append(")t WHERE ");
  1143. sql.append(" t.num<=").append(currentPage*count);
  1144. sql.append(" AND t.num>").append((currentPage-1)*count);
  1145. Connection conn = null;
  1146. Statement st = null;
  1147. ResultSet rs = null;
  1148. session = sf.openSession();
  1149. conn = session.connection();
  1150. List list = null;
  1151. Transreq reqbeans = null;
  1152. try {
  1153. int i = 0 ;
  1154. st = conn.createStatement();
  1155. rs = st.executeQuery(sql.toString());
  1156. list = new ArrayList();
  1157. while (rs.next()) {
  1158. i = i +1;
  1159. reqbeans = new Transreq();
  1160. reqbeans.setRqid(rs.getInt("RQID"));
  1161. reqbeans.setRtitle(rs.getString("RTITLE"));
  1162. reqbeans.setTname(rs.getString("TNAME"));
  1163. reqbeans.setRresult(rs.getString("rstatus"));
  1164. reqbeans.setRgrade(rs.getString("rgrade"));
  1165. reqbeans.setRlasttime(rs.getString("rlasttime"));
  1166. list.add(reqbeans);
  1167. }
  1168. if (i == 0 ){
  1169. list = null;
  1170. }
  1171. } catch (SQLException e) {
  1172. // TODO Auto-generated catch block
  1173. e.printStackTrace();
  1174. } finally {
  1175. session.close();
  1176. sf.close();
  1177. }
  1178. return list;
  1179. }
  1180. }