Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

684 lignes
25 KiB

  1. using Learun.DataBase.Repository;
  2. using Learun.Util;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace Learun.Application.Base.Files
  7. {
  8. /// <summary>
  9. /// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
  10. /// Copyright (c) 2013-2018 上海力软信息技术有限公司
  11. /// 创 建:超级管理员
  12. /// 日 期:2019-11-28 09:23
  13. /// 描 述:文件管理
  14. /// </summary>
  15. public class FileInfoService: RepositoryFactory
  16. {
  17. #region 获取数据
  18. /// <summary>
  19. /// 获取表实体数据
  20. /// </summary>
  21. /// <param name="keyValue">主键</param>
  22. /// <returns></returns>
  23. public FileBInfoEntity GetEntity(string keyValue)
  24. {
  25. try
  26. {
  27. return this.BaseRepository().FindEntity<FileBInfoEntity>(keyValue);
  28. }
  29. catch (Exception ex)
  30. {
  31. if (ex is ExceptionEx)
  32. {
  33. throw;
  34. }
  35. else
  36. {
  37. throw ExceptionEx.ThrowServiceException(ex);
  38. }
  39. }
  40. }
  41. /// <summary>
  42. /// 获取文件列表实体
  43. /// </summary>
  44. /// <param name="keyValue"></param>
  45. /// <returns></returns>
  46. public FilelistEntity GetListEntity(string keyValue)
  47. {
  48. try
  49. {
  50. return this.BaseRepository().FindEntity<FilelistEntity>(keyValue);
  51. }
  52. catch (Exception ex)
  53. {
  54. if (ex is ExceptionEx)
  55. {
  56. throw;
  57. }
  58. else
  59. {
  60. throw ExceptionEx.ThrowServiceException(ex);
  61. }
  62. }
  63. }
  64. /// <summary>
  65. /// 获取文件列表实体
  66. /// </summary>
  67. /// <param name="fileInfoId"></param>
  68. /// <returns></returns>
  69. public FilelistEntity GetListEntityByInfoId(string fileInfoId)
  70. {
  71. try
  72. {
  73. return this.BaseRepository().FindEntity<FilelistEntity>(" select * from lr_base_filelist where F_FileInfoId = @fileInfoId AND F_IsPublish = 1 ", new { fileInfoId });
  74. }
  75. catch (Exception ex)
  76. {
  77. if (ex is ExceptionEx)
  78. {
  79. throw;
  80. }
  81. else
  82. {
  83. throw ExceptionEx.ThrowServiceException(ex);
  84. }
  85. }
  86. }
  87. /// <summary>
  88. /// 文件审核列表
  89. /// </summary>
  90. /// <param name="strWfSql">查询语句</param>
  91. /// <param name="pagination">分页参数</param>
  92. /// <param name="keyword">查询关键字</param>
  93. /// <param name="userId">当前用户Id</param>
  94. /// <returns></returns>
  95. public IEnumerable<WFFileModel> GetWfPageList(string strWfSql, Pagination pagination, string keyword,string userId) {
  96. var strSql = new StringBuilder();
  97. strSql.Append("select t.*,l.F_Ver as FileVer,l.F_Name as FileName ,f.F_Code as FileCode from (" + strWfSql + ")t");
  98. strSql.Append(" LEFT JOIN lr_base_filelist l on l.F_Id = t.F_Id ");
  99. strSql.Append(" LEFT JOIN lr_base_fileinfo f on f.F_Id = l.F_FileInfoId where 1=1 AND t.F_SchemeCode = 'lr_files_manager' ");
  100. if (!string.IsNullOrEmpty(keyword)) {
  101. keyword = "%" + keyword + "%";
  102. strSql.Append(" AND f.F_Name like @keyword ");
  103. }
  104. return this.BaseRepository().FindList<WFFileModel>(strSql.ToString(),new { keyword, userId }, pagination);
  105. }
  106. /// <summary>
  107. /// 获取正式发布的文件
  108. /// </summary>
  109. /// <param name="folderId">分页参数</param>
  110. /// <param name="keyword">查询关键字</param>
  111. /// <returns></returns>
  112. public IEnumerable<FileBInfoEntity> GetAllPublishPageList(string keyword, string folderId)
  113. {
  114. List<FileBInfoEntity> list = new List<FileBInfoEntity>();
  115. if (string.IsNullOrEmpty(keyword))
  116. {
  117. list.AddRange(GetFolderList(keyword, folderId));
  118. }
  119. var strSql = new StringBuilder();
  120. strSql.Append(" select t.*,t1.F_Ver,t1.F_FileId,t1.F_PFiled,t3.F_FileSize,t3.F_FileType,1 as Type,'1,2,3,4,5,6' as F_AuthType from lr_base_fileinfo t ");
  121. strSql.Append(" LEFT JOIN lr_base_filelist t1 on t1.F_FileInfoId = t.F_Id ");
  122. //strSql.Append(" LEFT JOIN lr_base_fileauth t2 on t2.F_FileInfoId = t.F_Id ");
  123. strSql.Append(" LEFT JOIN LR_Base_AnnexesFile t3 on t3.F_FolderId = t1.F_FileId ");
  124. strSql.Append(" where t.F_DeleteMark = 0 AND t.F_IsPublish = 1 AND t1.F_IsPublish = 1 ");
  125. if (!string.IsNullOrEmpty(keyword))
  126. {
  127. keyword = "%" + keyword + "%";
  128. strSql.Append(" AND (t.F_Name like @keyword OR t.F_KeyWord like @keyword ) ");
  129. }
  130. else
  131. {
  132. strSql.Append(" AND t.F_Folder = @folderId ");
  133. }
  134. list.AddRange(this.BaseRepository().FindList<FileBInfoEntity>(strSql.ToString(), new { keyword, folderId }));
  135. return list;
  136. }
  137. /// <summary>
  138. /// 获取页面显示列表数据
  139. /// </summary>
  140. /// <param name="keyWord">关键字</param>
  141. /// <param name="folderId">父级id</param>
  142. /// <returns></returns>
  143. public IEnumerable<FileBInfoEntity> GetFolderList(string keyWord, string folderId)
  144. {
  145. var strSql = new StringBuilder();
  146. strSql.Append("SELECT ");
  147. strSql.Append(@"
  148. t.F_Id,
  149. t.F_PId as F_Folder,
  150. t.F_Name,
  151. 2 as Type,
  152. 'folder' as F_FileType
  153. ");
  154. strSql.Append(" FROM lr_base_folder t ");
  155. strSql.Append(" WHERE 1=1 ");
  156. if (!string.IsNullOrEmpty(folderId))
  157. {
  158. strSql.Append(" AND t.F_PId = @folderId ");
  159. }
  160. if (!string.IsNullOrEmpty(keyWord))
  161. {
  162. keyWord = "%" + keyWord + "%";
  163. strSql.Append(" AND t.F_Name Like @keyWord ");
  164. }
  165. strSql.Append(" Order by F_Name ");
  166. return this.BaseRepository().FindList<FileBInfoEntity>(strSql.ToString(), new { keyWord, folderId });
  167. }
  168. /// <summary>
  169. /// 获取文件夹带权限的
  170. /// </summary>
  171. /// <param name="keyWord"></param>
  172. /// <param name="folderId"></param>
  173. /// <param name="authList"></param>
  174. /// <param name="userInfo"></param>
  175. /// <returns></returns>
  176. public IEnumerable<FileBInfoEntity> GetFolderList2(string keyWord, string folderId, List<FileAuthEntity> authList, UserInfo userInfo)
  177. {
  178. var strSql = new StringBuilder();
  179. strSql.Append("SELECT ");
  180. strSql.Append(@"
  181. t.F_Id,
  182. t.F_PId as F_Folder,
  183. t.F_Name,
  184. 2 as Type,
  185. '2' as F_AuthType,
  186. 'folder' as F_FileType
  187. ");
  188. strSql.Append(" FROM lr_base_folder t ");
  189. strSql.Append(" WHERE 1=1 ");
  190. if (!string.IsNullOrEmpty(folderId))
  191. {
  192. strSql.Append(" AND t.F_PId = @folderId ");
  193. }
  194. if (!string.IsNullOrEmpty(keyWord))
  195. {
  196. keyWord = "%" + keyWord + "%";
  197. strSql.Append(" AND t.F_Name Like @keyWord ");
  198. }
  199. strSql.Append(" Order by F_Name ");
  200. var list =this.BaseRepository().FindList<FileBInfoEntity>(strSql.ToString(), new { keyWord, folderId });
  201. if (userInfo.isSystem)
  202. {
  203. return list;
  204. }
  205. else {
  206. List<FileBInfoEntity> list2 = new List<FileBInfoEntity>();
  207. foreach (var item in list) {
  208. item.F_AuthType = "1";
  209. var roleIdList = userInfo.roleIds.Split(',');
  210. bool flag = false;
  211. foreach (var roleIdItem in roleIdList) {
  212. var authList2 = authList.FindAll(t => t.F_FileInfoId == item.F_Id && t.F_ObjId == roleIdItem);
  213. if (authList2.Count > 0)
  214. {
  215. flag = true;
  216. if (authList2[0].F_Type != 2 && authList2[0].F_AuthType.IndexOf("2") != -1)
  217. {
  218. item.F_AuthType = "2";
  219. break;
  220. }
  221. }
  222. }
  223. if (flag) {
  224. list2.Add(item);
  225. }
  226. }
  227. return list2;
  228. }
  229. }
  230. /// <summary>
  231. /// 获取正式发布的文件
  232. /// </summary>
  233. /// <param name="keyword">查询关键字</param>
  234. /// <param name="folderId">文件夹id</param>
  235. /// <returns></returns>
  236. public IEnumerable<FileBInfoEntity> GetPublishList(string keyword, string folderId)
  237. {
  238. UserInfo userInfo = LoginUserInfo.Get();
  239. List<FileAuthEntity> authList = new List<FileAuthEntity>();
  240. List<FileBInfoEntity> list = new List<FileBInfoEntity>();
  241. if (!userInfo.isSystem)
  242. {
  243. string roleIds = userInfo.roleIds;
  244. if (string.IsNullOrEmpty(roleIds))
  245. {
  246. return new List<FileBInfoEntity>();
  247. }
  248. else
  249. {
  250. roleIds = "('" + roleIds.Replace(",", "','") + "')";
  251. authList = (List<FileAuthEntity>)this.BaseRepository().FindList<FileAuthEntity>(" select * from lr_base_fileauth where F_ObjId in " + roleIds + " AND F_Time >= @ftime ORDER BY F_Type,F_Level ", new { ftime = DateTime.Now });
  252. }
  253. }
  254. if (string.IsNullOrEmpty(keyword))
  255. {
  256. list.AddRange(GetFolderList2(keyword, folderId, authList, userInfo));
  257. }
  258. var strSql = new StringBuilder();
  259. strSql.Append(" select t.*,t1.F_Ver,t1.F_FileId,t1.F_PFiled,t3.F_FileSize,t3.F_FileType,1 as Type,'1,2,3,4,5,6' as F_AuthType from lr_base_fileinfo t ");
  260. strSql.Append(" LEFT JOIN lr_base_filelist t1 on t1.F_FileInfoId = t.F_Id ");
  261. //strSql.Append(" LEFT JOIN lr_base_fileauth t2 on t2.F_FileInfoId = t.F_Id ");
  262. strSql.Append(" LEFT JOIN LR_Base_AnnexesFile t3 on t3.F_FolderId = t1.F_FileId ");
  263. strSql.Append(" where t.F_DeleteMark = 0 AND t.F_IsPublish = 1 AND t1.F_IsPublish = 1 ");
  264. if (!string.IsNullOrEmpty(keyword))
  265. {
  266. keyword = "%" + keyword + "%";
  267. strSql.Append(" AND (t.F_Name like @keyword OR t.F_KeyWord like @keyword ) ");
  268. }
  269. else
  270. {
  271. strSql.Append(" AND t.F_Folder = @folderId ");
  272. }
  273. var fileList = this.BaseRepository().FindList<FileBInfoEntity>(strSql.ToString(), new { keyword, folderId });
  274. if (!userInfo.isSystem)
  275. {
  276. foreach (var item in fileList)
  277. {
  278. var roleIdList = userInfo.roleIds.Split(',');
  279. bool flag = false;
  280. item.F_AuthType = "";
  281. foreach (var roleIdItem in roleIdList)
  282. {
  283. var authList2 = authList.FindAll(t => t.F_FileInfoId == item.F_Id && t.F_ObjId == roleIdItem);
  284. if (authList2.Count > 0)
  285. {
  286. flag = true;
  287. if (item.F_AuthType != "")
  288. {
  289. item.F_AuthType += ",";
  290. }
  291. item.F_AuthType += authList2[0].F_AuthType;
  292. }
  293. }
  294. if (flag)
  295. {
  296. list.Add(item);
  297. }
  298. }
  299. }
  300. else {
  301. list.AddRange(fileList);
  302. }
  303. return list;
  304. }
  305. /// <summary>
  306. /// 获取文件的历史信息
  307. /// </summary>
  308. /// <param name="fileInfoId">主键</param>
  309. /// <returns></returns>
  310. public IEnumerable<FileBInfoEntity> GetHistoryList(string fileInfoId)
  311. {
  312. List<FileBInfoEntity> list = new List<FileBInfoEntity>();
  313. var strSql = new StringBuilder();
  314. strSql.Append(" select t.*,t1.F_Ver,t1.F_FileId,t1.F_PFiled,t3.F_FileSize,t3.F_FileType,1 as Type,'1,3' as F_AuthType from lr_base_fileinfo t ");
  315. strSql.Append(" LEFT JOIN lr_base_filelist t1 on t1.F_FileInfoId = t.F_Id ");
  316. strSql.Append(" LEFT JOIN LR_Base_AnnexesFile t3 on t3.F_FolderId = t1.F_FileId ");
  317. strSql.Append(" where t.F_IsPublish = 1 AND t.F_Id = @fileInfoId order by t1.F_PublishTime DESC ");
  318. list.AddRange(this.BaseRepository().FindList<FileBInfoEntity>(strSql.ToString(), new { fileInfoId}));
  319. UserInfo userInfo = LoginUserInfo.Get();
  320. if (!userInfo.isSystem)
  321. {
  322. string roleIds = userInfo.roleIds;
  323. if (string.IsNullOrEmpty(roleIds))
  324. {
  325. return list;
  326. }
  327. else
  328. {
  329. roleIds = "('" + roleIds.Replace(",", "','") + "')";
  330. var authList = (List<FileAuthEntity>)this.BaseRepository().FindList<FileAuthEntity>(" select * from lr_base_fileauth where F_ObjId in " + roleIds + " AND F_Time >= @ftime ORDER BY F_Level ", new { ftime = DateTime.Now });
  331. List<FileBInfoEntity> list2 = new List<FileBInfoEntity>();
  332. foreach (var item in list)
  333. {
  334. var roleIdList = userInfo.roleIds.Split(',');
  335. bool flag = false;
  336. item.F_AuthType = "";
  337. foreach (var roleIdItem in roleIdList)
  338. {
  339. var authList2 = authList.FindAll(t => t.F_FileInfoId == item.F_Id && t.F_ObjId == roleIdItem);
  340. if (authList2.Count > 0)
  341. {
  342. flag = true;
  343. if (item.F_AuthType != "")
  344. {
  345. item.F_AuthType += ",";
  346. }
  347. item.F_AuthType += authList2[0].F_AuthType;
  348. }
  349. }
  350. if (flag)
  351. {
  352. list2.Add(item);
  353. }
  354. }
  355. return list2;
  356. }
  357. }
  358. return list;
  359. }
  360. /// <summary>
  361. /// 获取正式发布的文件
  362. /// </summary>
  363. /// <param name="keyword">查询关键字</param>
  364. /// <returns></returns>
  365. public IEnumerable<FileBInfoEntity> GetDeleteList(string keyword)
  366. {
  367. List<FileBInfoEntity> list = new List<FileBInfoEntity>();
  368. var strSql = new StringBuilder();
  369. strSql.Append(" select t.*,t1.F_Ver,t1.F_FileId,t1.F_PFiled,t3.F_FileSize,t3.F_FileType,1 as Type,'1,2,3,4,5,6' as F_AuthType from lr_base_fileinfo t ");
  370. strSql.Append(" LEFT JOIN lr_base_filelist t1 on t1.F_FileInfoId = t.F_Id ");
  371. strSql.Append(" LEFT JOIN LR_Base_AnnexesFile t3 on t3.F_FolderId = t1.F_FileId ");
  372. strSql.Append(" where t.F_DeleteMark = 1 AND t.F_IsPublish = 1 AND t1.F_IsPublish = 1 ");
  373. list.AddRange(this.BaseRepository().FindList<FileBInfoEntity>(strSql.ToString(), new { keyword }));
  374. if (!string.IsNullOrEmpty(keyword))
  375. {
  376. keyword = "%" + keyword + "%";
  377. strSql.Append(" AND t.F_Name like @keyword ");
  378. }
  379. UserInfo userInfo = LoginUserInfo.Get();
  380. if (!userInfo.isSystem)
  381. {
  382. string postIds = userInfo.postIds;
  383. if (string.IsNullOrEmpty(postIds))
  384. {
  385. return list;
  386. }
  387. else
  388. {
  389. postIds = "('" + postIds.Replace(",", "','") + "')";
  390. var authList = (List<FileAuthEntity>)this.BaseRepository().FindList<FileAuthEntity>(" select * from lr_base_fileauth where F_ObjId in " + postIds + " AND F_Time <= ftime ", new { ftime = DateTime.Now });
  391. List<FileBInfoEntity> list2 = new List<FileBInfoEntity>();
  392. foreach (var item in list)
  393. {
  394. var fileList = authList.FindAll(t => t.F_FileInfoId == item.F_Id);
  395. if (fileList.Count > 0)
  396. {
  397. string authType = "";
  398. foreach (var fileItem in fileList)
  399. {
  400. if (authType != "")
  401. {
  402. authType += ",";
  403. }
  404. authType += fileItem.F_AuthType;
  405. }
  406. item.F_AuthType = authType;
  407. list2.Add(item);
  408. }
  409. }
  410. return list2;
  411. //strSql.Append(" AND t2.F_ObjId in " + postIds);
  412. }
  413. }
  414. return list;
  415. }
  416. #endregion
  417. #region 提交数据
  418. /// <summary>
  419. /// 保存数据
  420. /// </summary>
  421. /// <param name="keyValue">文件列表主键</param>
  422. /// <param name="fileBInfoEntity">文件主信息</param>
  423. /// <param name="filelistEntity">文件列表信息</param>
  424. public void SaveEntity(string keyValue, FileBInfoEntity fileBInfoEntity, FilelistEntity filelistEntity) {
  425. var db = this.BaseRepository().BeginTrans();
  426. try
  427. {
  428. if (string.IsNullOrEmpty(fileBInfoEntity.F_Id))
  429. {
  430. fileBInfoEntity.Create();
  431. db.Insert(fileBInfoEntity);
  432. }
  433. else {
  434. db.Update(fileBInfoEntity);
  435. }
  436. filelistEntity.F_FileInfoId = fileBInfoEntity.F_Id;
  437. if (string.IsNullOrEmpty(keyValue))
  438. {
  439. filelistEntity.Create();
  440. db.Insert(filelistEntity);
  441. }
  442. else {
  443. filelistEntity.Modify(keyValue);
  444. db.Update(filelistEntity);
  445. }
  446. db.Commit();
  447. }
  448. catch (Exception ex)
  449. {
  450. db.Rollback();
  451. if (ex is ExceptionEx)
  452. {
  453. throw;
  454. }
  455. else
  456. {
  457. throw ExceptionEx.ThrowServiceException(ex);
  458. }
  459. }
  460. }
  461. /// <summary>
  462. /// 更新文件发布状态
  463. /// </summary>
  464. /// <param name="processId"></param>
  465. public void UpdateEntity(string processId) {
  466. var fileList = this.BaseRepository().FindEntity<FilelistEntity>(processId);
  467. var db = this.BaseRepository().BeginTrans();
  468. try
  469. {
  470. db.ExecuteBySql(" update lr_base_filelist set F_IsPublish = 0 where F_FileInfoId=@id ",new {id = fileList.F_FileInfoId });
  471. FilelistEntity filelistEntity = new FilelistEntity()
  472. {
  473. F_Id = fileList.F_Id,
  474. F_IsPublish = 1,
  475. F_PublishTime = DateTime.Now
  476. };
  477. FileBInfoEntity fileBInfoEntity = new FileBInfoEntity
  478. {
  479. F_Id = fileList.F_FileInfoId,
  480. F_IsPublish = 1,
  481. F_DeleteMark = 0,
  482. F_KeyWord = fileList.F_KeyWord,
  483. F_Name = fileList.F_Name,
  484. F_Folder = fileList.F_Folder
  485. };
  486. db.Update(filelistEntity);
  487. db.Update(fileBInfoEntity);
  488. // 更新权限
  489. // 删除上从层文件夹继承的权限
  490. var authList = db.FindList<FileAuthEntity>(" select * from lr_base_fileauth t where t.F_FileInfoId = @F_FileInfoId ", new { F_FileInfoId = fileList.F_FileInfoId });
  491. foreach (var item in authList) {
  492. if (item.F_Type != 0)
  493. {
  494. db.ExecuteBySql(" delete from lr_base_fileauth where F_Id =@id", new { id = item.F_Id });
  495. }
  496. else {
  497. db.ExecuteBySql(" delete from lr_base_fileauth where F_from =@fromId ", new { fromId = item.F_Id});
  498. }
  499. }
  500. // 添加
  501. var authList2 = db.FindList<FileAuthEntity>(" select * from lr_base_fileauth t where t.F_FileInfoId = @F_FileInfoId AND F_Type != 2 ", new { F_FileInfoId = fileList.F_Folder });
  502. foreach (var item in authList2)
  503. {
  504. if (item.F_Type == 0)
  505. {
  506. item.F_from = item.F_Id;
  507. }
  508. FileAuthEntity authEntity = new FileAuthEntity()
  509. {
  510. F_Id = Guid.NewGuid().ToString(),
  511. F_AuthType = item.F_AuthType,
  512. F_FileInfoId = fileList.F_FileInfoId,
  513. F_from = item.F_from,
  514. F_ObjId = item.F_ObjId,
  515. F_ObjName = item.F_ObjName,
  516. F_ObjType = item.F_ObjType,
  517. F_Time = item.F_Time,
  518. F_Type = 1,
  519. F_IsFolder = 0,
  520. F_Level = item.F_Level + 1
  521. };
  522. db.Insert(authEntity);
  523. }
  524. db.Commit();
  525. }
  526. catch (Exception ex)
  527. {
  528. db.Rollback();
  529. if (ex is ExceptionEx)
  530. {
  531. throw;
  532. }
  533. else
  534. {
  535. throw ExceptionEx.ThrowServiceException(ex);
  536. }
  537. }
  538. }
  539. /// <summary>
  540. /// 虚拟删除文件
  541. /// </summary>
  542. /// <param name="keyValue">主键</param>
  543. public void VDeleteEntity(string keyValue) {
  544. FileBInfoEntity entity = new FileBInfoEntity
  545. {
  546. F_Id = keyValue,
  547. F_DeleteMark = 1
  548. };
  549. this.BaseRepository().Update(entity);
  550. }
  551. /// <summary>
  552. /// 还原虚拟删除文件
  553. /// </summary>
  554. /// <param name="keyValue">主键</param>
  555. public void RecoveryEntity(string keyValue)
  556. {
  557. FileBInfoEntity entity = new FileBInfoEntity
  558. {
  559. F_Id = keyValue,
  560. F_DeleteMark = 0
  561. };
  562. this.BaseRepository().Update(entity);
  563. }
  564. /// <summary>
  565. /// 彻底删除
  566. /// </summary>
  567. /// <param name="keyValue"></param>
  568. public void DeleteEntity(string keyValue) {
  569. var list = this.BaseRepository().FindList<FilelistEntity>(" select * from lr_base_filelist where F_FileInfoId = @fileInfoId", new { fileInfoId= keyValue });
  570. var db = this.BaseRepository().BeginTrans();
  571. try
  572. {
  573. db.Delete<FileBInfoEntity>(new FileBInfoEntity { F_Id = keyValue });
  574. db.ExecuteBySql(" Delete from lr_base_filelist where F_FileInfoId = @f_id ", new { f_id = keyValue });
  575. foreach (var item in list) {
  576. db.ExecuteBySql(" Delete from lr_nwf_process where F_Id = @f_id ", new { f_id = item.F_Id });
  577. db.ExecuteBySql(" Delete from lr_nwf_task where F_ProcessId = @f_id ", new { f_id = item.F_Id });
  578. db.ExecuteBySql(" Delete from lr_nwf_tasklog where F_ProcessId = @f_id ", new { f_id = item.F_Id });
  579. db.ExecuteBySql(" Delete from lr_nwf_taskmsg where F_ProcessId = @f_id ", new { f_id = item.F_Id });
  580. }
  581. db.Commit();
  582. }
  583. catch (Exception ex)
  584. {
  585. db.Rollback();
  586. if (ex is ExceptionEx)
  587. {
  588. throw;
  589. }
  590. else
  591. {
  592. throw ExceptionEx.ThrowServiceException(ex);
  593. }
  594. }
  595. }
  596. #endregion
  597. }
  598. }