DocumentFlow.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:63k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. namespace UDS.Components
  5. {
  6. #region 工作流的函数
  7. /// <summary>
  8. /// DocumentFlow 的摘要说明。
  9. /// </summary>
  10. public class DocumentFlow
  11. {
  12. //////////////////////////////////////////
  13. /// 公文流转
  14. //////////////////////////////////////////
  15. #region 添加文档
  16. /// <summary>
  17. /// 添加文档
  18. /// </summary>
  19. /// <param name="UserName">拟稿人</param>
  20. /// <param name="FlowID">所用流程ID</param>
  21. /// <param name="SQL">样式表数据的SQL语句</param>
  22. public int AddDocument(string UserName,long FlowID,string SQL)
  23. {
  24. int iReturn=-1;
  25. UDS.Components.Database mySQL = new UDS.Components.Database();
  26. SqlParameter[] parameters = {
  27. mySQL.MakeInParam("@DocBuilder",SqlDbType.VarChar,300,UserName),
  28. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  29. mySQL.MakeInParam("@SQL",SqlDbType.NText,4000,SQL)
  30. };
  31. try
  32. {
  33. iReturn = mySQL.RunProc("sp_Flow_AddDocument",parameters);
  34. }
  35. catch(Exception e)
  36. {
  37. Error.Log(e.ToString());
  38. }
  39. finally
  40. {
  41. mySQL.Close();
  42. mySQL = null;
  43. }
  44. return iReturn;
  45. }
  46. #endregion
  47. #region 删除文档
  48. /// <summary>
  49. /// 删除文档
  50. /// </summary>
  51. /// <param name="DocID">被删除的文档ID</param>
  52. public int DeleteDocument(long DocID)
  53. {
  54. int iReturn=-1;
  55. UDS.Components.Database mySQL = new UDS.Components.Database();
  56. SqlParameter[] parameters = {
  57. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  58. };
  59. try
  60. {
  61. iReturn = mySQL.RunProc("sp_Flow_DeleteDocument",parameters);
  62. }
  63. catch(Exception e)
  64. {
  65. Error.Log(e.ToString());
  66. }
  67. finally
  68. {
  69. mySQL.Close();
  70. mySQL = null;
  71. }
  72. return iReturn;
  73. }
  74. #endregion
  75. #region 修改文档
  76. /// <summary>
  77. /// 修改文档
  78. /// </summary>
  79. /// <param name="UpdateSQL">更新文档语句</param>
  80. public int UpdateDocument(string UpdateSQL)
  81. {
  82. int iReturn=-1;
  83. UDS.Components.Database mySQL = new UDS.Components.Database();
  84. SqlParameter[] parameters = {
  85. mySQL.MakeInParam("@SQL",SqlDbType.NText,4000,UpdateSQL)
  86. };
  87. try
  88. {
  89. iReturn = mySQL.RunProc("sp_Flow_UpdateDocument",parameters);
  90. }
  91. catch(Exception e)
  92. {
  93. Error.Log(e.ToString());
  94. }
  95. finally
  96. {
  97. mySQL.Close();
  98. mySQL = null;
  99. }
  100. return iReturn;
  101. }
  102. #endregion
  103. #region 文档签收
  104. /// <summary>
  105. /// 文档签收
  106. /// </summary>
  107. /// <param name="UserName">签收人</param>
  108. /// <param name="DocID">要被签收的文档ID</param>
  109. public int SignInDocument(string UserName,long DocID)
  110. {
  111. int iReturn=-1;
  112. UDS.Components.Database mySQL = new UDS.Components.Database();
  113. SqlParameter[] parameters = {
  114. mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName),
  115. mySQL.MakeInParam("@DocID",SqlDbType.Int,4,DocID)
  116. };
  117. try
  118. {
  119. iReturn = mySQL.RunProc("sp_Flow_SignINDoc",parameters);
  120. }
  121. catch(Exception e)
  122. {
  123. Error.Log(e.ToString());
  124. }
  125. finally
  126. {
  127. mySQL.Close();
  128. mySQL = null;
  129. }
  130. return iReturn;
  131. }
  132. #endregion
  133. #region 取消签收
  134. /// <summary>
  135. /// 取消签收
  136. /// </summary>
  137. /// <param name="UserName">签收人</param>
  138. /// <param name="DocID">被取消的文档ID</param>
  139. public int CancelSignInDocument(string UserName,long DocID)
  140. {
  141. int iReturn=-1;
  142. UDS.Components.Database mySQL = new UDS.Components.Database();
  143. SqlParameter[] parameters = {
  144. mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName),
  145. mySQL.MakeInParam("@DocID",SqlDbType.Int,4,DocID)
  146. };
  147. try
  148. {
  149. iReturn = mySQL.RunProc("sp_Flow_CancelSignINDoc",parameters);
  150. }
  151. catch(Exception e)
  152. {
  153. Error.Log(e.ToString());
  154. }
  155. finally
  156. {
  157. mySQL.Close();
  158. mySQL = null;
  159. }
  160. return iReturn;
  161. }
  162. #endregion
  163. #region 添加批注
  164. /// <summary>
  165. /// 添加批注
  166. /// </summary>
  167. /// <param name="UserName">批注人</param>
  168. /// <param name="DocID">批注的文档ID</param>
  169. /// <param name="PostilType">批注类型,通过,拒绝,完成</param>
  170. public int AddPostil(string UserName,long DocID,string Postil,int PostilType,long ObjID,long ObjType)
  171. {
  172. int iReturn=-1;
  173. UDS.Components.Database mySQL = new UDS.Components.Database();
  174. SqlParameter[] parameters = {
  175. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID),
  176. mySQL.MakeInParam("@Postiler",SqlDbType.VarChar  ,300,UserName),
  177. mySQL.MakeInParam("@PostilContent",SqlDbType.NText,3000,Postil),
  178. mySQL.MakeInParam("@PostilType",SqlDbType.Int   ,4,PostilType),
  179. mySQL.MakeInParam("@ObjID",SqlDbType.Int   ,4,ObjID),
  180. mySQL.MakeInParam("@ObjType",SqlDbType.Int   ,4,ObjType)
  181. };
  182. try
  183. {
  184. iReturn = mySQL.RunProc("sp_Flow_AddPostil",parameters);
  185. }
  186. catch(Exception e)
  187. {
  188. Error.Log(e.ToString());
  189. }
  190. finally
  191. {
  192. mySQL.Close();
  193. mySQL = null;
  194. }
  195. return iReturn;
  196. }
  197. #endregion
  198. #region 否决文档
  199. /// <summary>
  200. /// 否决文档
  201. /// </summary>
  202. /// <param name="DocID">被否决的文档ID</param>
  203. public int FaileDocument(long DocID)
  204. {
  205. int iReturn=-1;
  206. UDS.Components.Database mySQL = new UDS.Components.Database();
  207. SqlParameter[] parameters = {
  208. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  209. };
  210. try
  211. {
  212. iReturn = mySQL.RunProc("sp_Flow_FaileDocument",parameters);
  213. }
  214. catch(Exception e)
  215. {
  216. Error.Log(e.ToString());
  217. }
  218. finally
  219. {
  220. mySQL.Close();
  221. mySQL = null;
  222. }
  223. return iReturn;
  224. }
  225. #endregion
  226. #region 打回文档
  227. /// <summary>
  228. /// 打回文档
  229. /// </summary>
  230. /// <param name="DocID">被打回的文档ID</param>
  231. public int BackDocument(long DocID)
  232. {
  233. int iReturn=-1;
  234. UDS.Components.Database mySQL = new UDS.Components.Database();
  235. SqlParameter[] parameters = {
  236. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  237. };
  238. try
  239. {
  240. iReturn = mySQL.RunProc("sp_Flow_BackDocument",parameters);
  241. }
  242. catch(Exception e)
  243. {
  244. Error.Log(e.ToString());
  245. }
  246. finally
  247. {
  248. mySQL.Close();
  249. mySQL = null;
  250. }
  251. return iReturn;
  252. }
  253. #endregion
  254. #region 通过文档
  255. /// <summary>
  256. /// 通过文档
  257. /// </summary>
  258. /// <param name="UserName">审批人</param>
  259. /// <param name="DocID">当前文档ID</param>
  260. /// <param name="ProjectID">所在项目ID</param>
  261. public int PostDocument(string UserName,long DocID,long ProjectID)
  262. {
  263. int iReturn=-1;
  264. UDS.Components.Database mySQL = new UDS.Components.Database();
  265. SqlParameter[] parameters = {
  266. mySQL.MakeInParam("@StaffName",SqlDbType.VarChar,300,UserName),
  267. mySQL.MakeInParam("@DocID",SqlDbType.VarChar,300,DocID),
  268. mySQL.MakeInParam("@ProjectID",SqlDbType.Int,4,ProjectID)
  269. };
  270. try
  271. {
  272. iReturn = mySQL.RunProc("sp_Flow_PostDocument",parameters);
  273. }
  274. catch(Exception e)
  275. {
  276. Error.Log(e.ToString());
  277. }
  278. finally
  279. {
  280. mySQL.Close();
  281. mySQL = null;
  282. }
  283. return iReturn;
  284. }
  285. #endregion
  286. #region 结束文档
  287. /// <summary>
  288. /// 结束文档
  289. /// </summary>
  290. /// <param name="DocID">被结束的文档ID</param>
  291. public int FinishDocument(long DocID)
  292. {
  293. int iReturn=-1;
  294. UDS.Components.Database mySQL = new UDS.Components.Database();
  295. SqlParameter[] parameters = {
  296. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  297. };
  298. try
  299. {
  300. iReturn = mySQL.RunProc("sp_Flow_FinishDocument",parameters);
  301. }
  302. catch(Exception e)
  303. {
  304. Error.Log(e.ToString());
  305. }
  306. finally
  307. {
  308. mySQL.Close();
  309. mySQL = null;
  310. }
  311. return iReturn;
  312. }
  313. #endregion
  314. #region 删除文档最近的批注
  315. /// <summary>
  316. /// 删除文档最近的批注
  317. /// </summary>
  318. /// <param name="DocID">文档ID</param>
  319. public int CancelPostil(long DocID)
  320. {
  321. int iReturn=-1;
  322. UDS.Components.Database mySQL = new UDS.Components.Database();
  323. SqlParameter[] parameters = {
  324. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  325. };
  326. try
  327. {
  328. iReturn = mySQL.RunProc("sp_Flow_CancelPostil",parameters);
  329. }
  330. catch(Exception e)
  331. {
  332. Error.Log(e.ToString());
  333. }
  334. finally
  335. {
  336. mySQL.Close();
  337. mySQL = null;
  338. }
  339. return iReturn;
  340. }
  341. #endregion
  342. #region 获得步骤流转规则
  343. /// <summary>
  344. /// 获得步骤流转规则
  345. /// </summary>
  346. /// <param name="FlowID">流程ID</param>
  347. /// <param name="StepID">步骤ID</param>
  348. public int GetStepRule(long FlowID,long StepID)
  349. {
  350. int iReturn=-1;
  351. UDS.Components.Database mySQL = new UDS.Components.Database();
  352. SqlParameter[] parameters = {
  353. mySQL.MakeInParam("@FlowID",SqlDbType.Int,4,FlowID),
  354. mySQL.MakeInParam("@StepID",SqlDbType.Int,4,StepID)
  355. };
  356. try
  357. {
  358. iReturn = mySQL.RunProc("sp_Flow_GetStepRule",parameters);
  359. }
  360. catch(Exception e)
  361. {
  362. Error.Log(e.ToString());
  363. }
  364. finally
  365. {
  366. mySQL.Close();
  367. mySQL = null;
  368. }
  369. return iReturn;
  370. }
  371. #endregion
  372. #region 获得步骤结束权利
  373. /// <summary>
  374. /// 获得步骤结束权利
  375. /// </summary>
  376. /// <param name="FlowID">流程ID</param>
  377. /// <param name="StepID">步骤ID</param>
  378. public int GetStepRightToFinish(long FlowID,long StepID)
  379. {
  380. int iReturn=-1;
  381. UDS.Components.Database mySQL = new UDS.Components.Database();
  382. SqlParameter[] parameters = {
  383. mySQL.MakeInParam("@FlowID",SqlDbType.Int,4,FlowID),
  384. mySQL.MakeInParam("@StepID",SqlDbType.Int,4,StepID)
  385. };
  386. try
  387. {
  388. iReturn = mySQL.RunProc("sp_Flow_GetStepRightToFinish",parameters);
  389. }
  390. catch(Exception e)
  391. {
  392. Error.Log(e.ToString());
  393. }
  394. finally
  395. {
  396. mySQL.Close();
  397. mySQL = null;
  398. }
  399. return iReturn;
  400. }
  401. #endregion
  402. #region 获得文档的是否为新拟稿
  403. /// <summary>
  404. /// 获得流程的表格样式描述
  405. /// </summary>
  406. /// <param name="DocID">文档ID</param>
  407. public int IsNewDocument(long DocID)
  408. {
  409. int iReturn=-1;
  410. UDS.Components.Database mySQL = new UDS.Components.Database();
  411. SqlParameter[] parameters = {
  412. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  413. };
  414. try
  415. {
  416. iReturn = mySQL.RunProc("sp_Flow_IsNewDocument",parameters);
  417. }
  418. catch(Exception e)
  419. {
  420. Error.Log(e.ToString());
  421. }
  422. finally
  423. {
  424. mySQL.Close();
  425. mySQL = null;
  426. }
  427. return iReturn;
  428. }
  429. #endregion
  430. #region 获得用户所有的项目,返回表格
  431. /// <summary>
  432. /// 获得用户所有的项目
  433. /// </summary>
  434. /// <param name="UserName">用户名</param>
  435. /// <param name="dt">返回表格</param>
  436. public int GetProject(string UserName,out DataTable dt )
  437. {
  438. //int iReturn=0;
  439. SqlDataReader dr;
  440. UDS.Components.Database mySQL = new UDS.Components.Database();
  441. SqlParameter[] parameters = {
  442. mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName)
  443. };
  444. try
  445. {
  446. mySQL.RunProc("sp_GetTaskClass",parameters,out dr);
  447. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  448. }
  449. catch(Exception e)
  450. {
  451. Error.Log(e.ToString());
  452. dt = null;
  453. }
  454. finally
  455. {
  456. mySQL.Close();
  457. mySQL = null;
  458. }
  459. return 0;
  460. }
  461. #endregion
  462. #region 获得用户所有的项目,返回表格
  463. /// <summary>
  464. /// 获得用户所有的项目
  465. /// </summary>
  466. /// <param name="UserName">用户名</param>
  467. /// <param name="dt">返回表格</param>
  468. public int GetProject(string UserName,out SqlDataReader dr )
  469. {
  470. //int iReturn=0;
  471. dr = null;
  472. UDS.Components.Database mySQL = new UDS.Components.Database();
  473. SqlParameter[] parameters = {
  474. mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName)
  475. };
  476. try
  477. {
  478. mySQL.RunProc("sp_GetTaskClass",parameters,out dr);
  479. }
  480. catch(Exception e)
  481. {
  482. Error.Log(e.ToString());
  483. }
  484. finally
  485. {
  486. //mySQL.Close();
  487. //mySQL = null;
  488. }
  489. return 0;
  490. }
  491. #endregion
  492. #region 获得文档的批注,返回记录集
  493. /// <summary>
  494. /// 获得流程的表格样式描述
  495. /// </summary>
  496. /// <param name="DocID">文档ID</param>
  497. /// <param name="dr">返回表格</param>
  498. public int GetDocumentPostil(long DocID,out SqlDataReader dr )
  499. {
  500. //int iReturn=-1;
  501. UDS.Components.Database mySQL = new UDS.Components.Database();
  502. SqlParameter[] parameters = {
  503. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  504. };
  505. try
  506. {
  507. mySQL.RunProc("sp_Flow_GetDocumentPostil",parameters,out dr);
  508. }
  509. catch(Exception e)
  510. {
  511. Error.Log(e.ToString());
  512. dr = null;
  513. }
  514. finally
  515. {
  516. //mySQL.Close();
  517. //mySQL = null;
  518. }
  519. return 0;
  520. }
  521. #endregion
  522. #region 获得文档的批注,返回表格
  523. /// <summary>
  524. /// 获得流程的表格样式描述
  525. /// </summary>
  526. /// <param name="DocID">文档ID</param>
  527. /// <param name="dt">返回表格</param>
  528. public int GetDocumentPostil(long DocID,out DataTable dt )
  529. {
  530. //int iReturn=-1;
  531. SqlDataReader dr;
  532. UDS.Components.Database mySQL = new UDS.Components.Database();
  533. SqlParameter[] parameters = {
  534. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  535. };
  536. try
  537. {
  538. mySQL.RunProc("sp_Flow_GetDocumentPostil",parameters,out dr);
  539. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  540. }
  541. catch(Exception e)
  542. {
  543. Error.Log(e.ToString());
  544. dt = null;
  545. }
  546. finally
  547. {
  548. mySQL.Close();
  549. mySQL = null;
  550. }
  551. return 0;
  552. }
  553. #endregion
  554. #region 获得文档的信息实体,返回记录集
  555. /// <summary>
  556. /// 获得流程的表格样式描述
  557. /// </summary>
  558. /// <param name="DocID">文档ID</param>
  559. /// <param name="dr">返回记录集</param>
  560. public int GetDocumentInfo(long DocID,out SqlDataReader dr )
  561. {
  562. //int iReturn=-1;
  563. //SqlDataReader dd;
  564. UDS.Components.Database mySQL = new UDS.Components.Database();
  565. SqlParameter[] parameters = {
  566. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  567. };
  568. try
  569. {
  570. mySQL.RunProc("sp_Flow_GetDocumentInfo",parameters,out dr);
  571. }
  572. catch(Exception e)
  573. {
  574. dr = null;
  575. Error.Log(e.ToString());
  576. }
  577. finally
  578. {
  579. //mySQL.Close();
  580. //mySQL = null;
  581. }
  582. return 0;
  583. }
  584. #endregion
  585. #region 获得文档的信息实体,返回表格
  586. /// <summary>
  587. /// 获得流程的表格样式描述
  588. /// </summary>
  589. /// <param name="DocID">文档ID</param>
  590. /// <param name="dr">返回表格</param>
  591. public int GetDocumentInfo(long DocID,out DataTable dt )
  592. {
  593. //int iReturn=-1;
  594. SqlDataReader dr;
  595. UDS.Components.Database mySQL = new UDS.Components.Database();
  596. SqlParameter[] parameters = {
  597. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  598. };
  599. try
  600. {
  601. mySQL.RunProc("sp_Flow_GetDocumentInfo",parameters,out dr);
  602. dt =UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  603. }
  604. catch(Exception e)
  605. {
  606. dt = null;
  607. Error.Log(e.ToString());
  608. }
  609. finally
  610. {
  611. mySQL.Close();
  612. mySQL = null;
  613. }
  614. return 0;
  615. }
  616. #endregion
  617. #region 获得步骤成员,返回表格
  618. /// <summary>
  619. /// 获得环节成员,返回表格
  620. /// </summary>
  621. /// <param name="FlowID">流程ID</param>
  622. /// <param name="StepID">步骤ID</param>
  623. /// <param name="dt">返回表格</param>
  624. public int GetStaffInStep(long FlowID,long StepID,out DataTable dt )
  625. {
  626. //int iReturn=-1;
  627. SqlDataReader dr;
  628. UDS.Components.Database mySQL = new UDS.Components.Database();
  629. SqlParameter[] parameters = {
  630. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  631. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
  632. };
  633. try
  634. {
  635. mySQL.RunProc("sp_Flow_GetStaffInStep",parameters,out dr);
  636. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  637. }
  638. catch(Exception e)
  639. {
  640. Error.Log(e.ToString());
  641. dt = null;
  642. }
  643. finally
  644. {
  645. mySQL.Close();
  646. mySQL = null;
  647. }
  648. return 0;
  649. }
  650. #endregion
  651. #region 获得步骤成员,返回表格
  652. /// <summary>
  653. /// 获得环节成员,返回表格
  654. /// </summary>
  655. /// <param name="DocID">文档ID</param>
  656. /// <param name="dt">返回表格</param>
  657. public int GetStaffInStep(long DocID,out DataTable dt )
  658. {
  659. //int iReturn=-1;
  660. SqlDataReader dr;
  661. UDS.Components.Database mySQL = new UDS.Components.Database();
  662. SqlParameter[] parameters = {
  663. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  664. };
  665. try
  666. {
  667. mySQL.RunProc("sp_Flow_GetStaffInStep_Ex",parameters,out dr);
  668. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  669. }
  670. catch(Exception e)
  671. {
  672. Error.Log(e.ToString());
  673. dt = null;
  674. }
  675. finally
  676. {
  677. mySQL.Close();
  678. mySQL = null;
  679. }
  680. return 0;
  681. }
  682. #endregion
  683. #region 获得步骤接受人员,返回表格
  684. /// <summary>
  685. /// 获得步骤接受人员,返回表格
  686. /// </summary>
  687. /// <param name="DocID">文档ID</param>
  688. /// <param name="dt">返回表格</param>
  689. public int GetReceiver(long DocID,out DataTable dt )
  690. {
  691. //int iReturn=-1;
  692. SqlDataReader dr;
  693. UDS.Components.Database mySQL = new UDS.Components.Database();
  694. SqlParameter[] parameters = {
  695. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  696. };
  697. try
  698. {
  699. mySQL.RunProc("sp_Flow_GetReceiver",parameters,out dr);
  700. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  701. }
  702. catch(Exception e)
  703. {
  704. Error.Log(e.ToString());
  705. dt = null;
  706. }
  707. finally
  708. {
  709. mySQL.Close();
  710. mySQL = null;
  711. }
  712. return 0;
  713. }
  714. #endregion
  715. #region 获得步骤已经签收人员,返回表格
  716. /// <summary>
  717. /// 获得步骤已经签收人员,返回表格
  718. /// </summary>
  719. /// <param name="DocID">文档ID</param>
  720. /// <param name="dt">返回表格</param>
  721. public int GetSignIner(long DocID,out DataTable dt )
  722. {
  723. //int iReturn=-1;
  724. SqlDataReader dr;
  725. UDS.Components.Database mySQL = new UDS.Components.Database();
  726. SqlParameter[] parameters = {
  727. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  728. };
  729. try
  730. {
  731. mySQL.RunProc("sp_Flow_GetSignIner",parameters,out dr);
  732. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  733. }
  734. catch(Exception e)
  735. {
  736. Error.Log(e.ToString());
  737. dt = null;
  738. }
  739. finally
  740. {
  741. mySQL.Close();
  742. mySQL = null;
  743. }
  744. return 0;
  745. }
  746. #endregion
  747. #region 获得步骤未签收人员,返回表格
  748. /// <summary>
  749. /// 获得步骤未签收人员,返回表格
  750. /// </summary>
  751. /// <param name="DocID">文档ID</param>
  752. /// <param name="dt">返回表格</param>
  753. public int GetUnSignIner(long DocID,out DataTable dt )
  754. {
  755. //int iReturn=-1;
  756. SqlDataReader dr;
  757. UDS.Components.Database mySQL = new UDS.Components.Database();
  758. SqlParameter[] parameters = {
  759. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  760. };
  761. try
  762. {
  763. mySQL.RunProc("sp_Flow_GetUnSignIner",parameters,out dr);
  764. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  765. }
  766. catch(Exception e)
  767. {
  768. Error.Log(e.ToString());
  769. dt = null;
  770. }
  771. finally
  772. {
  773. mySQL.Close();
  774. mySQL = null;
  775. }
  776. return 0;
  777. }
  778. #endregion
  779. #region 获得步骤已经批阅人员,返回表格
  780. /// <summary>
  781. /// 获得步骤已经批阅人员,返回表格
  782. /// </summary>
  783. /// <param name="DocID">文档ID</param>
  784. /// <param name="dt">返回表格</param>
  785. public int GetPostiler(long DocID,out DataTable dt )
  786. {
  787. //int iReturn=-1;
  788. SqlDataReader dr;
  789. UDS.Components.Database mySQL = new UDS.Components.Database();
  790. SqlParameter[] parameters = {
  791. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  792. };
  793. try
  794. {
  795. mySQL.RunProc("sp_Flow_GetPostiler",parameters,out dr);
  796. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  797. }
  798. catch(Exception e)
  799. {
  800. Error.Log(e.ToString());
  801. dt = null;
  802. }
  803. finally
  804. {
  805. mySQL.Close();
  806. mySQL = null;
  807. }
  808. return 0;
  809. }
  810. #endregion
  811. #region 获得流程头信息,返回表格
  812. /// <summary获得流程头信息
  813. /// 获得环节已经批阅人员,返回表格
  814. /// </summary>
  815. /// <param name="FlowID">流程ID</param>
  816. /// <param name="dt">返回表格</param>
  817. public string GetStyleHeadline(long FlowID)
  818. {
  819. string str="";
  820. SqlDataReader dr;
  821. UDS.Components.Database mySQL = new UDS.Components.Database();
  822. SqlParameter[] parameters = {
  823. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
  824. };
  825. try
  826. {
  827. mySQL.RunProc("sp_Flow_GetStyleHead",parameters,out dr);
  828. if(dr.Read())
  829. {
  830. str = dr["Flow_Name"].ToString() + "(流水号:" + string.Format(dr["Times"].ToString(),"03d") + ")";
  831. }
  832. }
  833. catch(Exception e)
  834. {
  835. Error.Log(e.ToString());
  836. }
  837. finally
  838. {
  839. mySQL.Close();
  840. mySQL = null;
  841. }
  842. return str;
  843. }
  844. #endregion
  845. #region 获得文档的附件,返回表格
  846. /// <summary>
  847. /// 获得文档的附件,返回表格
  848. /// </summary>
  849. /// <param name="DocID">文档ID</param>
  850. /// <param name="dt">返回表格</param>
  851. public int GetDocumentAttach(long DocID,out DataTable dt)
  852. {
  853. SqlDataReader dr;
  854. UDS.Components.Database mySQL = new UDS.Components.Database();
  855. SqlParameter[] parameters = {
  856. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  857. };
  858. try
  859. {
  860. mySQL.RunProc("sp_Flow_GetDocumentAttach",parameters,out dr);
  861. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  862. }
  863. catch(Exception e)
  864. {
  865. Error.Log(e.ToString());
  866. throw new Exception("获得公文的附件出错!",e);
  867. }
  868. finally
  869. {
  870. mySQL.Close();
  871. mySQL = null;
  872. }
  873. return 0;
  874. }
  875. #endregion
  876. #region 添加公文附件数据库
  877. /// <summary>
  878. /// 添加文件附件数据库操作
  879. /// </summary>
  880. /// <param name="att">DocAttachFile类</param>
  881. /// <param name="DocID">文件ID</param>
  882. public void AddAttach(UDS.Components.DocAttachFile att,long DocID) 
  883. {
  884. UDS.Components.Database data = new UDS.Components.Database();
  885. SqlParameter[] prams = {
  886.    data.MakeInParam("@DocID",  SqlDbType.Int, 20, DocID),
  887.    data.MakeInParam("@FileName",  SqlDbType.VarChar, 300, att.FileName),
  888.    data.MakeInParam("@FileSize",  SqlDbType.Int, 20, att.FileSize),
  889.    data.MakeInParam("@FileAttribute",  SqlDbType.SmallInt,20, att.FileAttribute),
  890.    data.MakeInParam("@FileVisualPath",  SqlDbType.NVarChar, 200, att.FileVisualPath),
  891.    data.MakeInParam("@FileAuthor",  SqlDbType.NVarChar, 50, att.FileAuthor),
  892.    data.MakeInParam("@FileCatlog",  SqlDbType.NVarChar, 20, att.FileCatlog),
  893.    data.MakeInParam("@FileAddedDate", SqlDbType.DateTime, 30, DateTime.Parse(att.FileAddedDate))
  894.    };
  895. try 
  896. {
  897. data.RunProc("sp_Flow_AddFile", prams);
  898. }
  899. catch (Exception ex) 
  900. {
  901. Error.Log(ex.ToString());
  902. throw new Exception("文件附件发送出错!",ex);
  903. }
  904. }
  905. #endregion
  906. #region 删除公文附件数据库
  907. /// <summary>
  908. /// 删除文件附件数据库操作
  909. /// </summary>
  910. /// <param name="DocID">文件ID</param>
  911. public void DeleteAttach(long DocID) 
  912. {
  913. UDS.Components.Database data = new UDS.Components.Database();
  914. SqlParameter[] prams = {
  915.    data.MakeInParam("@DocID",  SqlDbType.Int, 20, DocID)
  916.    };
  917. try 
  918. {
  919. data.RunProc("sp_Flow_DeleteFile", prams);
  920. }
  921. catch (Exception ex) 
  922. {
  923. Error.Log(ex.ToString());
  924. throw new Exception("文件附件删除出错!",ex);
  925. }
  926. }
  927. #endregion
  928. #region 获得公文附件名
  929. /// <summary>
  930. /// 获得公文附件名
  931. /// </summary>
  932. /// <param name="DocID">文件ID</param>
  933. public string GetAttachName(long DocID) 
  934. {
  935. string AttachName="";
  936. UDS.Components.Database data = new UDS.Components.Database();
  937. SqlDataReader dr = null;
  938. SqlParameter[] prams = {
  939.    data.MakeInParam("@DocID",  SqlDbType.Int, 20, DocID)
  940.    };
  941. try 
  942. {
  943. data.RunProc("sp_Flow_GetDocumentAttach", prams,out dr);
  944. if(dr.Read())
  945. AttachName = dr["FileVisualPath"].ToString() + dr["FileName"].ToString();
  946. }
  947. catch (Exception ex) 
  948. {
  949. Error.Log(ex.ToString());
  950. throw new Exception("获得文件附出错!",ex);
  951. }
  952. finally
  953. {
  954. dr.Close();
  955. dr = null;
  956. data = null;
  957. }
  958. return AttachName;
  959. }
  960. #endregion
  961. #region 添加公文批注附件数据库
  962. /// <summary>
  963. /// 添加文件批注附件数据库操作
  964. /// </summary>
  965. /// <param name="att">DocAttachFile类</param>
  966. /// <param name="DocID">文件ID</param>
  967. public void AddPostilAttach(UDS.Components.DocAttachFile att,long PostilID) 
  968. {
  969. UDS.Components.Database data = new UDS.Components.Database();
  970. SqlParameter[] prams = {
  971.    data.MakeInParam("@PostilID",  SqlDbType.Int, 20, PostilID),
  972.    data.MakeInParam("@FileName",  SqlDbType.VarChar, 300, att.FileName),
  973.    data.MakeInParam("@FileSize",  SqlDbType.Int, 20, att.FileSize),
  974.    data.MakeInParam("@FileAttribute",  SqlDbType.SmallInt,20, att.FileAttribute),
  975.    data.MakeInParam("@FileVisualPath",  SqlDbType.NVarChar, 200, att.FileVisualPath),
  976.    data.MakeInParam("@FileAuthor",  SqlDbType.NVarChar, 50, att.FileAuthor),
  977.    data.MakeInParam("@FileCatlog",  SqlDbType.NVarChar, 20, att.FileCatlog),
  978.    data.MakeInParam("@FileAddedDate", SqlDbType.DateTime, 30, DateTime.Parse(att.FileAddedDate))
  979.    };
  980. try 
  981. {
  982. data.RunProc("sp_Flow_AddPostilFile", prams);
  983. }
  984. catch (Exception ex) 
  985. {
  986. Error.Log(ex.ToString());
  987. throw new Exception("文件附件发送出错!",ex);
  988. }
  989. }
  990. #endregion
  991. #region 获得文档的所在项目ID
  992. /// <summary>
  993. /// 获得文档的所在项目ID
  994. /// </summary>
  995. /// <param name="DocID">文档ID</param>
  996. public static int GetDocumentProjectID(long DocID)
  997. {
  998. int iReturn=0;
  999. UDS.Components.Database mySQL = new UDS.Components.Database();
  1000. SqlParameter[] parameters = {
  1001. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  1002. };
  1003. try
  1004. {
  1005. iReturn = mySQL.RunProc("sp_Flow_GetDocumentProjectID",parameters);
  1006. }
  1007. catch(Exception e)
  1008. {
  1009. Error.Log(e.ToString());
  1010. throw new Exception("获得公文的项目ID出错!",e);
  1011. }
  1012. finally
  1013. {
  1014. mySQL.Close();
  1015. mySQL = null;
  1016. }
  1017. return iReturn;
  1018. }
  1019. #endregion
  1020. #region 获得是否按照项目流转
  1021. /// <summary>
  1022. /// 获得是否按照项目流转ID
  1023. /// </summary>
  1024. /// <param name="UserName">用户名</param>
  1025. /// <param name="DocID">文档ID</param>
  1026. public bool IsProject(string UserName,long DocID)
  1027. {
  1028. bool iReturn = false;
  1029. SqlDataReader dr;
  1030. UDS.Components.Database mySQL = new UDS.Components.Database();
  1031. SqlParameter[] parameters = {
  1032. mySQL.MakeInParam("@StaffName",SqlDbType.VarChar,100,UserName),
  1033. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  1034. };
  1035. try
  1036. {
  1037. mySQL.RunProc("sp_Flow_GetPrePostInfo",parameters,out dr);
  1038. if(dr.Read())
  1039. {
  1040. if(dr["Flow_Rule"].ToString()=="2")
  1041. iReturn = true;
  1042. }
  1043. dr.Close();
  1044. dr = null;
  1045. }
  1046. catch(Exception e)
  1047. {
  1048. Error.Log(e.ToString());
  1049. throw new Exception("获得是否按照项目流转出错!",e);
  1050. }
  1051. finally
  1052. {
  1053. mySQL.Close();
  1054. mySQL = null;
  1055. }
  1056. return iReturn;
  1057. }
  1058. #endregion
  1059. /////////////////////////////////////////////
  1060. /// 流程自定义表单
  1061. /////////////////////////////////////////////
  1062. #region 添加自定义风格表格
  1063. /// <summary>
  1064. /// 添加自定义风格表格
  1065. /// </summary>
  1066. /// <param name="StyleName">风格名</param>
  1067. /// <param name="StyleRemark">简介ID</param>
  1068. /// <param name="Teamplate">模板路径</param>
  1069. public int AddStyle(string StyleName,string StyleRemark,string Teamplate)
  1070. {
  1071. int iReturn=-1;
  1072. UDS.Components.Database mySQL = new UDS.Components.Database();
  1073. SqlParameter[] parameters = {
  1074. mySQL.MakeInParam("@StyleName",SqlDbType.VarChar,100,StyleName),
  1075. mySQL.MakeInParam("@StyleRemark",SqlDbType.VarChar,100,StyleRemark),
  1076. mySQL.MakeInParam("@Teamplate",SqlDbType.VarChar,100,Teamplate)
  1077. };
  1078. try
  1079. {
  1080. iReturn = mySQL.RunProc("sp_Flow_AddStyle",parameters);
  1081. }
  1082. catch(Exception e)
  1083. {
  1084. Error.Log(e.ToString());
  1085. }
  1086. finally
  1087. {
  1088. mySQL.Close();
  1089. mySQL = null;
  1090. }
  1091. return iReturn;
  1092. }
  1093. #endregion
  1094. #region 删除自定义风格表格
  1095. /// <summary>
  1096. /// 删除自定义风格表格
  1097. /// </summary>
  1098. /// <param name="StyleID">风格ID</param>
  1099. public int DeleteStyle(long StyleID,string Path)
  1100. {
  1101. int iReturn=-1;
  1102. UDS.Components.Database mySQL = new UDS.Components.Database();
  1103. SqlParameter[] parameters = {
  1104. mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID)
  1105. };
  1106. try
  1107. {
  1108. DeleteTemplate(StyleID,Path); //删除模板实体
  1109. iReturn = mySQL.RunProc("sp_Flow_DeleteStyle",parameters);
  1110. }
  1111. catch(Exception e)
  1112. {
  1113. Error.Log(e.ToString());
  1114. }
  1115. finally
  1116. {
  1117. mySQL.Close();
  1118. mySQL = null;
  1119. }
  1120. return iReturn;
  1121. }
  1122. #endregion
  1123. #region 修改自定义风格表格
  1124. /// <summary>
  1125. /// 修改自定义风格表格
  1126. /// </summary>
  1127. /// <param name="StyleID">风格ID</param>
  1128. /// <param name="StyleName">风格名</param>
  1129. /// <param name="StyleRemark">简介ID</param>
  1130. /// <param name="Teamplate">模板路径</param>
  1131. public int UpdateStyle(long StyleID,string StyleName,string StyleRemark,string Teamplate,string Path)
  1132. {
  1133. int iReturn=-1;
  1134. UDS.Components.Database mySQL = new UDS.Components.Database();
  1135. SqlParameter[] parameters = {
  1136. mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID),
  1137. mySQL.MakeInParam("@StyleName",SqlDbType.VarChar,100,StyleName),
  1138. mySQL.MakeInParam("@StyleRemark",SqlDbType.VarChar,100,StyleRemark),
  1139. mySQL.MakeInParam("@Teamplate",SqlDbType.VarChar,100,Teamplate)
  1140. };
  1141. try
  1142. {
  1143. DeleteTemplate(StyleID,Path);
  1144. iReturn = mySQL.RunProc("sp_Flow_UpdateStyle",parameters);
  1145. }
  1146. catch(Exception e)
  1147. {
  1148. Error.Log(e.ToString());
  1149. }
  1150. finally
  1151. {
  1152. mySQL.Close();
  1153. mySQL = null;
  1154. }
  1155. return iReturn;
  1156. }
  1157. #endregion
  1158. #region 添加自定义风格详细定义
  1159. /// <summary>
  1160. /// 添加自定义风格详细定义
  1161. /// </summary>
  1162. /// <param name="StyleID">风格表格ID</param>
  1163. /// <param name="FieldName">帮定字段名</param>
  1164. /// <param name="FieldDescription">字段意义</param>
  1165. /// <param name="Judged">是否作为条件判断字段</param>
  1166. /// <param name="MultiLine">是否多行</param>
  1167. /// <param name="Height">控件高度</param>
  1168. /// <param name="Width">控件宽</param>
  1169. /// <param name="Position">控件在表单中的位置</param>
  1170. /// <param name="Example">填表示例</param>
  1171. public int AddStyleDescription(long StyleID,string FieldName,string FieldDescription,int Judged,int MultiLine,int Height,int Width,int Position,string Example)
  1172. {
  1173. int iReturn=-1;
  1174. UDS.Components.Database mySQL = new UDS.Components.Database();
  1175. SqlParameter[] parameters = {
  1176. mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID),
  1177. mySQL.MakeInParam("@FieldName",SqlDbType.VarChar,100,FieldName),
  1178. mySQL.MakeInParam("@FieldDescription",SqlDbType.VarChar,100,FieldDescription),
  1179. mySQL.MakeInParam("@Judged",SqlDbType.Int,4,Judged),
  1180. mySQL.MakeInParam("@MultiLine",SqlDbType.Int,4,MultiLine),
  1181. mySQL.MakeInParam("@Height",SqlDbType.Int,4,Height),
  1182. mySQL.MakeInParam("@Width",SqlDbType.Int,4,Width),
  1183. mySQL.MakeInParam("@Position",SqlDbType.Int,4,Position),
  1184. mySQL.MakeInParam("@Example",SqlDbType.VarChar,100,Example)
  1185. };
  1186. try
  1187. {
  1188. iReturn = mySQL.RunProc("sp_Flow_AddStyle_Description",parameters);
  1189. }
  1190. catch(Exception e)
  1191. {
  1192. Error.Log(e.ToString());
  1193. }
  1194. finally
  1195. {
  1196. mySQL.Close();
  1197. mySQL = null;
  1198. }
  1199. return iReturn;
  1200. }
  1201. #endregion
  1202. #region 删除自定义风格表格详细定义
  1203. /// <summary>
  1204. /// 删除自定义风格表格详细定义,一行定义表示一个控件
  1205. /// </summary>
  1206. /// <param name="DescriptionID">风格详细定义ID</param>
  1207. public int DeleteStyleDescription(long DescriptionID)
  1208. {
  1209. int iReturn=-1;
  1210. UDS.Components.Database mySQL = new UDS.Components.Database();
  1211. SqlParameter[] parameters = {
  1212. mySQL.MakeInParam("@DescriptionID",SqlDbType.Int,4,DescriptionID)
  1213. };
  1214. try
  1215. {
  1216. iReturn = mySQL.RunProc("sp_Flow_DeleteStyle_Description",parameters);
  1217. }
  1218. catch(Exception e)
  1219. {
  1220. Error.Log(e.ToString());
  1221. }
  1222. finally
  1223. {
  1224. mySQL.Close();
  1225. mySQL = null;
  1226. }
  1227. return iReturn;
  1228. }
  1229. #endregion
  1230. #region 修改自定义风格详细定义
  1231. /// <summary>
  1232. /// 修改自定义风格详细定义
  1233. /// </summary>
  1234. /// <param name="DescriptionID">风格详细定义ID</param>
  1235. /// <param name="StyleID">风格表格ID</param>
  1236. /// <param name="FieldName">帮定字段名</param>
  1237. /// <param name="FieldDescription">字段意义</param>
  1238. /// <param name="Judged">是否作为条件判断字段</param>
  1239. /// <param name="MultiLine">是否多行</param>
  1240. /// <param name="Height">控件高度</param>
  1241. /// <param name="Width">控件宽</param>
  1242. /// <param name="Position">控件在表单中的位置</param>
  1243. /// <param name="Example">填表示例</param>
  1244. public int UpdateStyleDescription(long DescriptionID,long StyleID,string FieldName,string FieldDescription,int Judged,int MultiLine,int Height,int Width,int Position,string Example)
  1245. {
  1246. int iReturn=-1;
  1247. UDS.Components.Database mySQL = new UDS.Components.Database();
  1248. SqlParameter[] parameters = {
  1249. mySQL.MakeInParam("@DescriptionID",SqlDbType.Int,4,DescriptionID),
  1250. mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID),
  1251. mySQL.MakeInParam("@FieldName",SqlDbType.VarChar,100,FieldName),
  1252. mySQL.MakeInParam("@FieldDescription",SqlDbType.VarChar,100,FieldDescription),
  1253. mySQL.MakeInParam("@Judged",SqlDbType.Int,4,Judged),
  1254. mySQL.MakeInParam("@MultiLine",SqlDbType.Int,4,MultiLine),
  1255. mySQL.MakeInParam("@Height",SqlDbType.Int,4,Height),
  1256. mySQL.MakeInParam("@Width",SqlDbType.Int,4,Width),
  1257. mySQL.MakeInParam("@Position",SqlDbType.Int,4,Position),
  1258. mySQL.MakeInParam("@Example",SqlDbType.VarChar,100,Example)
  1259. };
  1260. try
  1261. {
  1262. iReturn = mySQL.RunProc("sp_Flow_UpdateStyle_Description",parameters);
  1263. }
  1264. catch(Exception e)
  1265. {
  1266. Error.Log(e.ToString());
  1267. }
  1268. finally
  1269. {
  1270. mySQL.Close();
  1271. mySQL = null;
  1272. }
  1273. return iReturn;
  1274. }
  1275. #endregion
  1276. #region 获得自定义风格表格一条详细定义
  1277. /// <summary>
  1278. /// 获得单一样式描述
  1279. /// </summary>
  1280. /// <param name="StyleID">流程ID</param>
  1281. /// <param name="dr">数据集合</param>
  1282. public int GetDescription(long DescriptionID,out SqlDataReader dr )
  1283. {
  1284. //int iReturn=-1;
  1285. dr = null;
  1286. UDS.Components.Database mySQL = new UDS.Components.Database();
  1287. SqlParameter[] parameters = {
  1288. mySQL.MakeInParam("@DescriptionID",SqlDbType.Int ,4,DescriptionID)
  1289. };
  1290. try
  1291. {
  1292. mySQL.RunProc("sp_Flow_GetDescription",parameters,out dr);
  1293. }
  1294. catch(Exception ex)
  1295. {
  1296. Error.Log(ex.ToString());
  1297. }
  1298. finally
  1299. {
  1300. //mySQL.Close();
  1301. //mySQL = null;
  1302. }
  1303. return 0;
  1304. }
  1305. #endregion
  1306. #region 通过流程ID得到流程模板名
  1307. /// <summary>
  1308. /// 通过流程ID得到流程模板名
  1309. /// </summary>
  1310. /// <param name="FlowID">流程ID</param>
  1311. public string GetStyleTemplate(long FlowID)
  1312. {
  1313. string str="";
  1314. UDS.Components.Database mySQL = new UDS.Components.Database();
  1315. SqlParameter[] parameters = {
  1316. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1317. mySQL.MakeOutParam("@Template",SqlDbType.VarChar,100)
  1318. };
  1319. try
  1320. {
  1321. mySQL.RunProc("sp_Flow_GetStyleTemplate",parameters);
  1322. str = parameters[1].Value.ToString();
  1323. }
  1324. catch(Exception e)
  1325. {
  1326. Error.Log(e.ToString());
  1327. throw new Exception("获得表格模板错误!",e);
  1328. }
  1329. finally
  1330. {
  1331. mySQL.Close();
  1332. mySQL = null;
  1333. }
  1334. if(str.Length>0)
  1335. return @"Template" + str;
  1336. else
  1337. return "";
  1338. }
  1339. #endregion
  1340. #region 通过表单ID得到流程模板名
  1341. /// <summary>
  1342. /// 通过表单ID得到流程模板名
  1343. /// </summary>
  1344. /// <param name="FlowID">流程ID</param>
  1345. public string GetStyleTemplateEx(long StyleID)
  1346. {
  1347. string str="";
  1348. UDS.Components.Database mySQL = new UDS.Components.Database();
  1349. SqlParameter[] parameters = {
  1350. mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID),
  1351. mySQL.MakeOutParam("@Template",SqlDbType.VarChar,100)
  1352. };
  1353. try
  1354. {
  1355. mySQL.RunProc("sp_Flow_GetStyleTemplateEx",parameters);
  1356. str = parameters[1].Value.ToString();
  1357. }
  1358. catch(Exception e)
  1359. {
  1360. Error.Log(e.ToString());
  1361. throw new Exception("获得表格模板错误!",e);
  1362. }
  1363. finally
  1364. {
  1365. mySQL.Close();
  1366. mySQL = null;
  1367. }
  1368. if(str.Length>0)
  1369. return @"Template" + str;
  1370. else
  1371. return "";
  1372. }
  1373. #endregion
  1374. #region 删除模板实体
  1375. /// <summary>
  1376. /// 删除模板实体
  1377. /// </summary>
  1378. /// <param name="StyleID">风格表格ID</param>
  1379. /// <param name="Path">路径</param>
  1380. public int DeleteTemplate(long StyleID,string Path)
  1381. {
  1382. int iReturn=0;
  1383. UDS.Components.Database mySQL = new UDS.Components.Database();
  1384. SqlDataReader dr;
  1385. SqlParameter[] parameters = {
  1386. mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID)
  1387. };
  1388. try
  1389. {
  1390. mySQL.RunProc("sp_Flow_GetStyle",parameters,out dr);
  1391. if(dr.Read())
  1392. {
  1393. string FileName;
  1394. FileName = Path + "\" + dr["Template"].ToString();
  1395. if(System.IO.File.Exists(FileName)==true)
  1396. {
  1397. System.IO.File.Delete(FileName);
  1398. }
  1399. }
  1400. }
  1401. catch(Exception e)
  1402. {
  1403. Error.Log(e.ToString());
  1404. }
  1405. finally
  1406. {
  1407. mySQL.Close();
  1408. mySQL = null;
  1409. }
  1410. return iReturn;
  1411. }
  1412. #endregion
  1413. #region 获得流程的表格样式描述
  1414. /// <summary>
  1415. /// 获得流程的表格样式描述
  1416. /// </summary>
  1417. /// <param name="FlowID">流程ID</param>
  1418. /// <param name="Judged">是否包括条件判断的字段</param>
  1419. /// <param name="dr">数据集合</param>
  1420. public int GetStyleDescription(long FlowID,int Judged,out SqlDataReader dr )
  1421. {
  1422. //int iReturn=-1;
  1423. UDS.Components.Database mySQL = new UDS.Components.Database();
  1424. SqlParameter[] parameters = {
  1425. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1426. mySQL.MakeInParam("@Judged",SqlDbType.Int ,4,0)
  1427. };
  1428. try
  1429. {
  1430. mySQL.RunProc("sp_flow_getstyle_description",parameters,out dr);
  1431. }
  1432. catch(Exception e)
  1433. {
  1434. Error.Log(e.ToString());
  1435. dr = null;
  1436. }
  1437. finally
  1438. {
  1439. //mySQL.Close();
  1440. //mySQL = null;
  1441. }
  1442. return 0;
  1443. }
  1444. #endregion
  1445. #region 获得流程的表格样式描述
  1446. /// <summary>
  1447. /// 获得流程的表格样式描述
  1448. /// </summary>
  1449. /// <param name="StyleID">流程ID</param>
  1450. /// <param name="dr">数据集合</param>
  1451. public int GetStyleDescription(long StyleID,out SqlDataReader dr )
  1452. {
  1453. //int iReturn=-1;
  1454. UDS.Components.Database mySQL = new UDS.Components.Database();
  1455. SqlParameter[] parameters = {
  1456. mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID)
  1457. };
  1458. try
  1459. {
  1460. mySQL.RunProc("sp_flow_getstyle_description_ex",parameters,out dr);
  1461. }
  1462. catch(Exception e)
  1463. {
  1464. Error.Log(e.ToString());
  1465. dr = null;
  1466. }
  1467. finally
  1468. {
  1469. //mySQL.Close();
  1470. //mySQL = null;
  1471. }
  1472. return 0;
  1473. }
  1474. #endregion
  1475. #region 获得流程的表格样式描述
  1476. /// <summary>
  1477. /// 获得流程的表格样式描述
  1478. /// </summary>
  1479. /// <param name="FlowID">流程ID</param>
  1480. /// <param name="Judged">是否包括条件判断的字段</param>
  1481. /// <param name="dt">返回表格</param>
  1482. public int GetStyleDescription(long FlowID,int Judged,out DataTable dt )
  1483. {
  1484. //int iReturn=-1;
  1485. SqlDataReader dr;
  1486. UDS.Components.Database mySQL = new UDS.Components.Database();
  1487. SqlParameter[] parameters = {
  1488. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1489. mySQL.MakeInParam("@Judged",SqlDbType.Int ,4,0)
  1490. };
  1491. try
  1492. {
  1493. mySQL.RunProc("sp_flow_getstyle_description",parameters,out dr);
  1494. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  1495. }
  1496. catch(Exception e)
  1497. {
  1498. Error.Log(e.ToString());
  1499. dt = null;
  1500. }
  1501. finally
  1502. {
  1503. mySQL.Close();
  1504. mySQL = null;
  1505. }
  1506. return 0;
  1507. }
  1508. #endregion
  1509. //////////////////////////////////////////////
  1510. /// 流程管理相关
  1511. //////////////////////////////////////////////
  1512. #region 添加流程
  1513. /// <summary>
  1514. /// 添加流程
  1515. /// </summary>
  1516. /// <param name="FlowName">流程名</param>
  1517. /// <param name="FlowRemark">流程简介</param>
  1518. /// <param name="Builder">流程制定者</param>
  1519. /// <param name="StyleID">流程自定义表单</param>
  1520. public int AddFlow(string FlowName,string FlowRemark,string Builder,long StyleID)
  1521. {
  1522. int iReturn=-1;
  1523. UDS.Components.Database mySQL = new UDS.Components.Database();
  1524. SqlParameter[] parameters = {
  1525. mySQL.MakeInParam("@FlowName",SqlDbType.VarChar ,300,FlowName),
  1526. mySQL.MakeInParam("@FlowRemark",SqlDbType.NText ,3000,FlowRemark ),
  1527. mySQL.MakeInParam("@Builder",SqlDbType.VarChar,300,Builder),
  1528. mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID)
  1529. };
  1530. try
  1531. {
  1532. iReturn = mySQL.RunProc("sp_Flow_AddFlow",parameters);
  1533. }
  1534. catch(Exception e)
  1535. {
  1536. Error.Log(e.ToString());
  1537. }
  1538. finally
  1539. {
  1540. mySQL.Close();
  1541. mySQL = null;
  1542. }
  1543. return iReturn;
  1544. }
  1545. #endregion
  1546. #region 删除流程
  1547. /// <summary>
  1548. /// 删除流程
  1549. /// </summary>
  1550. /// <param name="FlowID">被删除的流程ID</param>
  1551. public int DeleteFlow(long FlowID)
  1552. {
  1553. int iReturn=-1;
  1554. UDS.Components.Database mySQL = new UDS.Components.Database();
  1555. SqlParameter[] parameters = {
  1556. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
  1557. };
  1558. try
  1559. {
  1560. iReturn = mySQL.RunProc("sp_Flow_DeleteFlow",parameters);
  1561. }
  1562. catch(Exception e)
  1563. {
  1564. Error.Log(e.ToString());
  1565. }
  1566. finally
  1567. {
  1568. mySQL.Close();
  1569. mySQL = null;
  1570. }
  1571. return iReturn;
  1572. }
  1573. #endregion
  1574. #region 修改流程
  1575. /// <summary>
  1576. /// 修改流程
  1577. /// </summary>
  1578. /// <param name="FlowID">流程ID</param>
  1579. /// <param name="FlowName">流程名</param>
  1580. /// <param name="FlowRemark">流程简介</param>
  1581. /// <param name="Builder">流程制定者</param>
  1582. /// <param name="StyleID">流程自定义表单</param>
  1583. public int UpdateFlow(long FlowID,string FlowName,string FlowRemark,string Builder,long StyleID)
  1584. {
  1585. int iReturn=-1;
  1586. UDS.Components.Database mySQL = new UDS.Components.Database();
  1587. SqlParameter[] parameters = {
  1588. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1589. mySQL.MakeInParam("@FlowName",SqlDbType.VarChar ,300,FlowName),
  1590. mySQL.MakeInParam("@FlowRemark",SqlDbType.NText ,3000,FlowRemark ),
  1591. mySQL.MakeInParam("@Builder",SqlDbType.VarChar,300,Builder),
  1592. mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID)
  1593. };
  1594. try
  1595. {
  1596. iReturn = mySQL.RunProc("sp_Flow_UpdateFlow",parameters);
  1597. }
  1598. catch(Exception e)
  1599. {
  1600. Error.Log(e.ToString());
  1601. }
  1602. finally
  1603. {
  1604. mySQL.Close();
  1605. mySQL = null;
  1606. }
  1607. return iReturn;
  1608. }
  1609. #endregion
  1610. #region 得到流程基本信息
  1611. /// <summary>
  1612. /// 得到流程基本信息
  1613. /// </summary>
  1614. /// <param name="FlowID">流程ID</param>
  1615. /// <param name="dt">返回表格</param>
  1616. public int GetFlow(long FlowID,out DataTable dt)
  1617. {
  1618. int iReturn=-1;
  1619. SqlDataReader dr;
  1620. UDS.Components.Database mySQL = new UDS.Components.Database();
  1621. SqlParameter[] parameters = {
  1622. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
  1623. };
  1624. try
  1625. {
  1626. mySQL.RunProc("sp_Flow_GetFlow",parameters,out dr);
  1627. iReturn = 0;
  1628. dt = Tools.ConvertDataReaderToDataTable(dr);
  1629. }
  1630. catch(Exception e)
  1631. {
  1632. Error.Log(e.ToString());
  1633. dt = null;
  1634. }
  1635. finally
  1636. {
  1637. mySQL.Close();
  1638. mySQL = null;
  1639. }
  1640. return iReturn;
  1641. }
  1642. #endregion
  1643. #region 得到流程名
  1644. /// <summary>
  1645. /// 得到流程名
  1646. /// </summary>
  1647. /// <param name="FlowID">流程ID</param>
  1648. /// <param name="dt">返回表格</param>
  1649. public string GetFlowTitle(long FlowID)
  1650. {
  1651. string strReturn="";
  1652. SqlDataReader dr;
  1653. UDS.Components.Database mySQL = new UDS.Components.Database();
  1654. SqlParameter[] parameters = {
  1655. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
  1656. };
  1657. try
  1658. {
  1659. mySQL.RunProc("sp_Flow_GetFlow",parameters,out dr);
  1660. if(dr.Read())
  1661. {
  1662. strReturn = "<a href='#' title='" + dr["Remark"].ToString() + "'>" + dr["Flow_Name"].ToString() + "</a>";
  1663. }
  1664. dr.Close();
  1665. }
  1666. catch(Exception e)
  1667. {
  1668. Error.Log(e.ToString());
  1669. }
  1670. finally
  1671. {
  1672. mySQL.Close();
  1673. mySQL = null;
  1674. }
  1675. return strReturn;
  1676. }
  1677. #endregion
  1678. //////////////////////////////////////////////
  1679. /// 流程步骤管理相关
  1680. //////////////////////////////////////////////
  1681. #region 添加步骤
  1682. /// <summary>
  1683. /// 添加步骤
  1684. /// </summary>
  1685. /// <param name="StepName">步骤名</param>
  1686. /// <param name="StepRemark">步骤简介</param>
  1687. /// <param name="RightToFinish">是否有权利结束</param>
  1688. /// <param name="FlowRule">流转规则</param>
  1689. /// <param name="PassNum">会签数目</param>
  1690. public int AddStep(long FlowID,string StepName,string StepRemark,int RightToFinish,int FlowRule,int PassNum,int LocalAlert,int BaseHour,int CycTimes,int Period)
  1691. {
  1692. int iReturn=-1;
  1693. UDS.Components.Database mySQL = new UDS.Components.Database();
  1694. SqlParameter[] parameters = {
  1695. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1696. mySQL.MakeInParam("@StepName",SqlDbType.VarChar ,300,StepName),
  1697. mySQL.MakeInParam("@StepRemark",SqlDbType.NText ,3000,StepRemark),
  1698. mySQL.MakeInParam("@RightToFinish",SqlDbType.Bit,1,RightToFinish),
  1699. mySQL.MakeInParam("@FlowRule",SqlDbType.Int,4,FlowRule),
  1700. mySQL.MakeInParam("@PassNum",SqlDbType.Int,4,PassNum),
  1701. mySQL.MakeInParam("@LocalAlert",SqlDbType.Bit,1,LocalAlert),
  1702. mySQL.MakeInParam("@BaseHour",SqlDbType.Int,4,BaseHour),
  1703. mySQL.MakeInParam("@CycTimes",SqlDbType.Int,4,CycTimes),
  1704. mySQL.MakeInParam("@Period",SqlDbType.Int,4,Period)
  1705. };
  1706. try
  1707. {
  1708. iReturn = mySQL.RunProc("sp_Flow_AddStep",parameters);
  1709. }
  1710. catch (Exception ex)
  1711. {
  1712. UDS.Components.Error.Log(ex.ToString());
  1713. }
  1714. finally
  1715. {
  1716. mySQL.Close();
  1717. mySQL = null;
  1718. }
  1719. return iReturn;
  1720. }
  1721. #endregion
  1722. #region 删除步骤
  1723. /// <summary>
  1724. /// 删除步骤
  1725. /// </summary>
  1726. /// <param name="FlowID">被删除的步骤的流程ID</param>
  1727. /// <param name="StepID">被删除的步骤的步骤ID</param>
  1728. public int DeleteStep(long FlowID,long StepID)
  1729. {
  1730. int iReturn=-1;
  1731. UDS.Components.Database mySQL = new UDS.Components.Database();
  1732. SqlParameter[] parameters = {
  1733. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1734. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
  1735. };
  1736. try
  1737. {
  1738. iReturn = mySQL.RunProc("sp_Flow_DeleteStep",parameters);
  1739. }
  1740. catch(Exception e)
  1741. {
  1742. Error.Log(e.ToString());
  1743. }
  1744. finally
  1745. {
  1746. mySQL.Close();
  1747. mySQL = null;
  1748. }
  1749. return iReturn;
  1750. }
  1751. #endregion
  1752. #region 修改步骤
  1753. /// <summary>
  1754. /// 修改步骤
  1755. /// </summary>
  1756. /// <param name="FlowID">流程ID</param>
  1757. /// <param name="StepID">步骤ID</param>
  1758. /// <param name="TacheName">步骤名</param>
  1759. /// <param name="TacheRemark">步骤简介</param>
  1760. /// <param name="RightToFinish">是否有权利结束</param>
  1761. /// <param name="FlowRule">流转规则</param>
  1762. /// <param name="PassNum">会签数目</param>
  1763. public int UpdateStep(long FlowID,long StepID,string StepName,string StepRemark,int RightToFinish,int FlowRule,int PassNum,int LocalAlert,int BaseHour,int CycTimes,int Period)
  1764. {
  1765. int iReturn=-1;
  1766. UDS.Components.Database mySQL = new UDS.Components.Database();
  1767. SqlParameter[] parameters = {
  1768. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1769. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
  1770. mySQL.MakeInParam("@StepName",SqlDbType.VarChar ,300,StepName),
  1771. mySQL.MakeInParam("@StepRemark",SqlDbType.NText ,3000,StepRemark),
  1772. mySQL.MakeInParam("@RightToFinish",SqlDbType.Bit,1,RightToFinish),
  1773. mySQL.MakeInParam("@FlowRule",SqlDbType.Int,4,FlowRule),
  1774. mySQL.MakeInParam("@PassNum",SqlDbType.Int,4,PassNum),
  1775. mySQL.MakeInParam("@LocalAlert",SqlDbType.Bit,1,LocalAlert),
  1776. mySQL.MakeInParam("@BaseHour",SqlDbType.Int,4,BaseHour),
  1777. mySQL.MakeInParam("@CycTimes",SqlDbType.Int,4,CycTimes),
  1778. mySQL.MakeInParam("@Period",SqlDbType.Int,4,Period)
  1779. };
  1780. try
  1781. {
  1782. iReturn = mySQL.RunProc("sp_Flow_UpdateStep",parameters);
  1783. }
  1784. catch (Exception ex)
  1785. {
  1786. UDS.Components.Error.Log(ex.ToString());
  1787. }
  1788. finally
  1789. {
  1790. mySQL.Close();
  1791. mySQL = null;
  1792. }
  1793. return iReturn;
  1794. }
  1795. #endregion
  1796. #region 上移步骤
  1797. /// <summary>
  1798. /// 上移步骤
  1799. /// </summary>
  1800. /// <param name="FlowID">流程ID</param>
  1801. /// <param name="StepID">步骤ID</param>
  1802. public int MoveUpStep(long FlowID,long StepID)
  1803. {
  1804. int iReturn=-1;
  1805. UDS.Components.Database mySQL = new UDS.Components.Database();
  1806. SqlParameter[] parameters = {
  1807. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1808. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
  1809. };
  1810. try
  1811. {
  1812. iReturn = mySQL.RunProc("sp_Flow_MoveUpStep",parameters);
  1813. }
  1814. catch (Exception ex)
  1815. {
  1816. UDS.Components.Error.Log(ex.ToString());
  1817. }
  1818. finally
  1819. {
  1820. mySQL.Close();
  1821. mySQL = null;
  1822. }
  1823. return iReturn;
  1824. }
  1825. #endregion
  1826. #region 得到步骤基本信息
  1827. /// <summary>
  1828. /// 得到步骤基本信息
  1829. /// </summary>
  1830. /// <param name="FlowID">流程ID</param>
  1831. /// <param name="StepID">步骤ID</param>
  1832. /// <param name="dt">返回表格</param>
  1833. public int GetStep(long FlowID,long StepID,out DataTable dt)
  1834. {
  1835. int iReturn=-1;
  1836. SqlDataReader dr;
  1837. UDS.Components.Database mySQL = new UDS.Components.Database();
  1838. SqlParameter[] parameters = {
  1839. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1840. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
  1841. };
  1842. try
  1843. {
  1844. mySQL.RunProc("sp_Flow_GetStep",parameters,out dr);
  1845. iReturn = 0;
  1846. dt = Tools.ConvertDataReaderToDataTable(dr);
  1847. }
  1848. catch(Exception e)
  1849. {
  1850. Error.Log(e.ToString());
  1851. dt = null;
  1852. }
  1853. finally
  1854. {
  1855. mySQL.Close();
  1856. mySQL = null;
  1857. }
  1858. return iReturn;
  1859. }
  1860. #endregion
  1861. #region 得到流程的最大步骤
  1862. /// <summary>
  1863. /// 得到流程的最大步骤
  1864. /// </summary>
  1865. /// <param name="FlowID">流程ID</param>
  1866. /// <returns>最大步骤</returns>
  1867. public int GetMaxStep(long FlowID)
  1868. {
  1869. int iReturn=-1;
  1870. UDS.Components.Database mySQL = new UDS.Components.Database();
  1871. SqlParameter[] parameters = {
  1872. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
  1873. };
  1874. try
  1875. {
  1876. iReturn = mySQL.RunProc("sp_Flow_GetMaxStep",parameters);
  1877. }
  1878. catch(Exception e)
  1879. {
  1880. Error.Log(e.ToString());
  1881. }
  1882. finally
  1883. {
  1884. mySQL.Close();
  1885. mySQL = null;
  1886. }
  1887. return iReturn;
  1888. }
  1889. #endregion
  1890. #region 得到步骤名
  1891. /// <summary>
  1892. /// 得到步骤名
  1893. /// </summary>
  1894. /// <param name="FlowID">流程ID</param>
  1895. public string GetStepTitle(long FlowID,long StepID)
  1896. {
  1897. string strReturn="";
  1898. SqlDataReader dr;
  1899. UDS.Components.Database mySQL = new UDS.Components.Database();
  1900. SqlParameter[] parameters = {
  1901. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1902. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
  1903. };
  1904. try
  1905. {
  1906. mySQL.RunProc("sp_Flow_GetStep",parameters,out dr);
  1907. if(dr.Read())
  1908. {
  1909. strReturn = "<a href='#' title='" + dr["Step_Remark"].ToString() + "'>" + dr["Step_Name"].ToString() + "</a>";
  1910. }
  1911. dr.Close();
  1912. }
  1913. catch(Exception e)
  1914. {
  1915. Error.Log(e.ToString());
  1916. }
  1917. finally
  1918. {
  1919. mySQL.Close();
  1920. mySQL = null;
  1921. }
  1922. return strReturn;
  1923. }
  1924. #endregion
  1925. //////////////////////////////////////////////
  1926. /// 流程跳转管理相关
  1927. //////////////////////////////////////////////
  1928. #region 添加跳转
  1929. /// <summary>
  1930. /// 添加跳转
  1931. /// </summary>
  1932. /// <param name="FlowID">流程ID</param>
  1933. /// <param name="StepID">步骤ID</param>
  1934. /// <param name="FieldName">字段名</param>
  1935. /// <param name="Compare">比较符号</param>
  1936. /// <param name="CompareValue">比较值</param>
  1937. /// <returns></returns>
  1938. public int AddJump(long FlowID,long StepID,string FieldName,string Compare,double CompareValue,long ToStepID,int FlowRule)
  1939. {
  1940. int iReturn=-1;
  1941. UDS.Components.Database mySQL = new UDS.Components.Database();
  1942. SqlParameter[] parameters = {
  1943. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1944. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
  1945. mySQL.MakeInParam("@FieldName",SqlDbType.VarChar  ,50,FieldName),
  1946. mySQL.MakeInParam("@Compare",SqlDbType.VarChar,50,Compare),
  1947. mySQL.MakeInParam("@CompareValue",SqlDbType.Float ,8,CompareValue),
  1948. mySQL.MakeInParam("@ToStepID",SqlDbType.Float ,8,ToStepID),
  1949. mySQL.MakeInParam("@FlowRule",SqlDbType.Int ,4,FlowRule)
  1950. };
  1951. try
  1952. {
  1953. iReturn = mySQL.RunProc("sp_Flow_AddJump",parameters);
  1954. }
  1955. catch (Exception ex)
  1956. {
  1957. UDS.Components.Error.Log(ex.ToString());
  1958. }
  1959. finally
  1960. {
  1961. mySQL.Close();
  1962. mySQL = null;
  1963. }
  1964. return iReturn;
  1965. }
  1966. #endregion
  1967. #region 删除跳转
  1968. /// <summary>
  1969. /// 删除步骤
  1970. /// </summary>
  1971. /// <param name="FlowID">被删除的跳转的流程ID</param>
  1972. /// <param name="StepID">被删除的跳转的步骤ID</param>
  1973. /// <param name="Priority">被删除的跳转的优先等级</param>
  1974. public int DeleteJump(long FlowID,long StepID,long Priority)
  1975. {
  1976. int iReturn=-1;
  1977. UDS.Components.Database mySQL = new UDS.Components.Database();
  1978. SqlParameter[] parameters = {
  1979. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  1980. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
  1981. mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority)
  1982. };
  1983. try
  1984. {
  1985. iReturn = mySQL.RunProc("sp_Flow_DeleteJump",parameters);
  1986. }
  1987. catch(Exception e)
  1988. {
  1989. Error.Log(e.ToString());
  1990. }
  1991. finally
  1992. {
  1993. mySQL.Close();
  1994. mySQL = null;
  1995. }
  1996. return iReturn;
  1997. }
  1998. #endregion
  1999. #region 修改跳转
  2000. /// <summary>
  2001. /// 修改跳转
  2002. /// </summary>
  2003. /// <param name="FlowID">流程ID</param>
  2004. /// <param name="StepID">步骤ID</param>
  2005. /// <param name="Priority">优先级</param>
  2006. /// <param name="FieldName">字段名</param>
  2007. /// <param name="Compare">比较符号</param>
  2008. /// <param name="CompareValue">比较值</param>
  2009. /// <returns></returns>
  2010. public int UpdateJump(long FlowID,long StepID,long Priority,string FieldName,string Compare,double CompareValue,long ToStepID)
  2011. {
  2012. int iReturn=-1;
  2013. UDS.Components.Database mySQL = new UDS.Components.Database();
  2014. SqlParameter[] parameters = {
  2015. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  2016. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
  2017. mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority),
  2018. mySQL.MakeInParam("@FieldName",SqlDbType.VarChar  ,50,FieldName),
  2019. mySQL.MakeInParam("@Compare",SqlDbType.VarChar,50,Compare),
  2020. mySQL.MakeInParam("@CompareValue",SqlDbType.Float ,8,CompareValue),
  2021. mySQL.MakeInParam("@ToStepID",SqlDbType.Float ,8,ToStepID)
  2022. };
  2023. try
  2024. {
  2025. iReturn = mySQL.RunProc("sp_Flow_UpdateJump",parameters);
  2026. }
  2027. catch (Exception ex)
  2028. {
  2029. UDS.Components.Error.Log(ex.ToString());
  2030. }
  2031. finally
  2032. {
  2033. mySQL.Close();
  2034. mySQL = null;
  2035. }
  2036. return iReturn;
  2037. }
  2038. #endregion
  2039. #region 上移跳转
  2040. /// <summary>
  2041. /// 上移跳转
  2042. /// </summary>
  2043. /// <param name="FlowID">流程ID</param>
  2044. /// <param name="StepID">步骤ID</param>
  2045. /// <param name="Priority">优先级</param>
  2046. public int MoveUpJump(long FlowID,long StepID,long Priority)
  2047. {
  2048. int iReturn=-1;
  2049. UDS.Components.Database mySQL = new UDS.Components.Database();
  2050. SqlParameter[] parameters = {
  2051. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  2052. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
  2053. mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority)
  2054. };
  2055. try
  2056. {
  2057. iReturn = mySQL.RunProc("sp_Flow_MoveUpJump",parameters);
  2058. }
  2059. catch (Exception ex)
  2060. {
  2061. UDS.Components.Error.Log(ex.ToString());
  2062. }
  2063. finally
  2064. {
  2065. mySQL.Close();
  2066. mySQL = null;
  2067. }
  2068. return iReturn;
  2069. }
  2070. #endregion
  2071. #region 得到跳转基本信息
  2072. /// <summary>
  2073. /// 得到步骤基本信息
  2074. /// </summary>
  2075. /// <param name="FlowID">流程ID</param>
  2076. /// <param name="StepID">步骤ID</param>
  2077. /// <param name="Priority">优先级</param>
  2078. /// <param name="dt">返回表格</param>
  2079. public int GetJump(long FlowID,long StepID,long Priority,out DataTable dt)
  2080. {
  2081. int iReturn=-1;
  2082. SqlDataReader dr;
  2083. UDS.Components.Database mySQL = new UDS.Components.Database();
  2084. SqlParameter[] parameters = {
  2085. mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
  2086. mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
  2087. mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority)
  2088. };
  2089. try
  2090. {
  2091. mySQL.RunProc("sp_Flow_GetJump",parameters,out dr);
  2092. iReturn = 0;
  2093. dt = Tools.ConvertDataReaderToDataTable(dr);
  2094. }
  2095. catch(Exception e)
  2096. {
  2097. Error.Log(e.ToString());
  2098. dt = null;
  2099. }
  2100. finally
  2101. {
  2102. mySQL.Close();
  2103. mySQL = null;
  2104. }
  2105. return iReturn;
  2106. }
  2107. #endregion
  2108. //////////////////////////////////////////////
  2109. ///   其他杂项
  2110. //////////////////////////////////////////////
  2111. #region 处理消息
  2112. /// <summary>
  2113. /// 获得流程的表格样式描述
  2114. /// </summary>
  2115. /// <param name="ErrorNum">错误消息</param>
  2116. /// <param name="DocID">文档ID</param>
  2117. public string DoMessage(int ErrorNum,long DocID,bool DefaultOperation)
  2118. {
  2119. string ErrorMessage="";
  2120. switch(ErrorNum)
  2121. {
  2122. case 0:
  2123. ErrorMessage="成功";
  2124. break;
  2125. case -1:
  2126. ErrorMessage="流程结束!";
  2127. break;
  2128. case -2:
  2129. if(DefaultOperation==true)
  2130. {
  2131. if(this.IsNewDocument(DocID)>0)
  2132. this.DeleteDocument(DocID);
  2133. else
  2134. this.CancelPostil(DocID);
  2135. }
  2136. ErrorMessage="没有职位上级";
  2137. break;
  2138. case -3:
  2139. if(DefaultOperation==true)
  2140. {
  2141. if(this.IsNewDocument(DocID)>0)
  2142. this.DeleteDocument(DocID);
  2143. else
  2144. this.CancelPostil(DocID);
  2145. }
  2146. ErrorMessage="没有项目上级";
  2147. break;
  2148. case -4:
  2149. ErrorMessage="需要全体通过";
  2150. break;
  2151. case -5:
  2152. ErrorMessage="通过人数不够";
  2153. break;
  2154. case -6:
  2155. if(DefaultOperation==true)
  2156. {
  2157. if(this.IsNewDocument(DocID)>0)
  2158. this.DeleteDocument(DocID);
  2159. else
  2160. this.CancelPostil(DocID);
  2161. }
  2162. ErrorMessage="该流程无你所在的环节";
  2163. break;
  2164. case -7:
  2165. ErrorMessage="下一步骤没有成员";
  2166. break;
  2167. default:
  2168. break;
  2169. }
  2170. return ErrorMessage;
  2171. }
  2172. #endregion
  2173. #region 获得文档的存在状态
  2174. /// <summary>
  2175. /// 获得文档的存在状态
  2176. /// </summary>
  2177. /// <param name="DocID">被检查的文档ID</param>
  2178. public int GetDocumentStatus(long DocID)
  2179. {
  2180. int iReturn=-1;
  2181. UDS.Components.Database mySQL = new UDS.Components.Database();
  2182. SqlParameter[] parameters = {
  2183. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  2184. };
  2185. try
  2186. {
  2187. iReturn = mySQL.RunProc("sp_Flow_GetDocumentStatus",parameters);
  2188. }
  2189. catch(Exception e)
  2190. {
  2191. Error.Log(e.ToString());
  2192. }
  2193. finally
  2194. {
  2195. mySQL.Close();
  2196. mySQL = null;
  2197. }
  2198. return iReturn;
  2199. }
  2200. #endregion
  2201. #region 获得文档的操作状态
  2202. /// <summary>
  2203. /// 获得文档的操作状态
  2204. /// </summary>
  2205. /// <param name="DocID">被检查的文档ID</param>
  2206. public int GetDocumentStatus(long DocID,string UserName)
  2207. {
  2208. int iReturn=-1;
  2209. UDS.Components.Database mySQL = new UDS.Components.Database();
  2210. SqlParameter[] parameters = {
  2211. mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName),
  2212. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  2213. };
  2214. try
  2215. {
  2216. iReturn = mySQL.RunProc("sp_Flow_GetDocumentStatusByStaff",parameters);
  2217. }
  2218. catch(Exception e)
  2219. {
  2220. Error.Log(e.ToString());
  2221. }
  2222. finally
  2223. {
  2224. mySQL.Close();
  2225. mySQL = null;
  2226. }
  2227. return iReturn;
  2228. }
  2229. #endregion
  2230. #region 权限判断
  2231. /// <summary>
  2232. /// 权限判断
  2233. /// </summary>
  2234. /// <param name="classID">对象接点ID</param>
  2235. /// <param name="UserName">用户名</param>
  2236. /// <param name="actID">权利代号</param>
  2237. /// <returns>是否有权利 1有 0无</returns>
  2238. public bool GetAccessPermission(int classID,string UserName,int actID)
  2239. {
  2240. int flag = 0;
  2241. // 定义数据库操作类及DataReader
  2242. Database data = new Database();
  2243. // 执行存储过程,并返回SqlDataReader对象
  2244. SqlParameter[] prams = {
  2245.    data.MakeInParam("@Class_ID" , SqlDbType.Int, 20, classID),
  2246.    data.MakeInParam("@UserName" , SqlDbType.NVarChar, 20, UserName),
  2247.    data.MakeInParam("@Act_ID" , SqlDbType.Int, 20, actID),
  2248.    // data.MakeInParam("@Inheit" , SqlDbType.Bit, 1, 1),
  2249.    data.MakeOutParam("@ReturnValue",SqlDbType.Int,20)
  2250.    };
  2251. try 
  2252. {
  2253. data.RunProc("sp_GetAccessPermission",prams);
  2254. flag = Int32.Parse(prams[3].Value.ToString());
  2255. return (flag==1)?true:false;
  2256. }
  2257. catch(Exception ex)
  2258. {
  2259. Error.Log(ex.ToString());
  2260. throw new Exception("获取访问权出错",ex);
  2261. }
  2262. finally
  2263. {
  2264. data    = null;
  2265. }
  2266. }
  2267. #endregion
  2268. #region 得到文档关联的流程
  2269. /// <summary>
  2270. /// 得到文档关联的流程
  2271. /// </summary>
  2272. /// <param name="DocID">文档ID</param>
  2273. /// <returns>文档关联的流程ID</returns>
  2274. public int GetDocumentFlowID(long DocID)
  2275. {
  2276. int iReturn=-1;
  2277. UDS.Components.Database mySQL = new UDS.Components.Database();
  2278. SqlParameter[] parameters = {
  2279. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  2280. };
  2281. try
  2282. {
  2283. iReturn = mySQL.RunProc("sp_GetDocumentFlowID",parameters);
  2284. }
  2285. catch(Exception e)
  2286. {
  2287. Error.Log(e.ToString());
  2288. }
  2289. finally
  2290. {
  2291. mySQL.Close();
  2292. mySQL = null;
  2293. }
  2294. return iReturn;
  2295. }
  2296. #endregion
  2297. #region 得到文档关联的步骤
  2298. /// <summary>
  2299. /// 得到文档关联的步骤
  2300. /// </summary>
  2301. /// <param name="DocID">文档ID</param>
  2302. /// <returns>文档关联的流程ID</returns>
  2303. public int GetDocumentStepID(long DocID)
  2304. {
  2305. int iReturn=-1;
  2306. UDS.Components.Database mySQL = new UDS.Components.Database();
  2307. SqlParameter[] parameters = {
  2308. mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
  2309. };
  2310. try
  2311. {
  2312. iReturn = mySQL.RunProc("sp_GetDocumentStepID",parameters);
  2313. }
  2314. catch(Exception e)
  2315. {
  2316. Error.Log(e.ToString());
  2317. }
  2318. finally
  2319. {
  2320. mySQL.Close();
  2321. mySQL = null;
  2322. }
  2323. return iReturn;
  2324. }
  2325. #endregion
  2326. }
  2327. #endregion
  2328. }