No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

273 líneas
8.2 KiB

  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Text;
  8. namespace Learun.Application.TwoDevelopment.AssetManagementSystem
  9. {
  10. /// <summary>
  11. /// 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架
  12. /// Copyright (c) 2013-2018 上海力软信息技术有限公司
  13. /// 创 建:超级管理员
  14. /// 日 期:2019-09-11 10:35
  15. /// 描 述:资产报废
  16. /// </summary>
  17. public class AssScrapService : RepositoryFactory
  18. {
  19. #region 获取数据
  20. /// <summary>
  21. /// 获取页面显示列表数据
  22. /// <summary>
  23. /// <param name="queryJson">查询参数</param>
  24. /// <returns></returns>
  25. public IEnumerable<Ass_ScrapEntity> GetPageList(Pagination pagination, string queryJson)
  26. {
  27. try
  28. {
  29. var strSql = new StringBuilder();
  30. strSql.Append("SELECT ");
  31. strSql.Append(@"
  32. t.SPID,
  33. t.SPNo,
  34. t.SPType,
  35. t.SPStatus,
  36. t.SPEntryDate,
  37. t.SPProcessId,
  38. t.SPRemark
  39. ");
  40. strSql.Append(" FROM Ass_Scrap t ");
  41. strSql.Append(" WHERE 1=1 ");
  42. var queryParam = queryJson.ToJObject();
  43. // 虚拟参数
  44. var dp = new DynamicParameters(new { });
  45. if (!queryParam["SPType"].IsEmpty())
  46. {
  47. dp.Add("SPType", queryParam["SPType"].ToString(), DbType.String);
  48. strSql.Append(" AND t.SPType = @SPType ");
  49. }
  50. if (!queryParam["SPRemark"].IsEmpty())
  51. {
  52. dp.Add("SPRemark", "%" + queryParam["SPRemark"].ToString() + "%", DbType.String);
  53. strSql.Append(" AND t.SPRemark Like @SPRemark ");
  54. }
  55. return this.BaseRepository().FindList<Ass_ScrapEntity>(strSql.ToString(), dp, pagination);
  56. }
  57. catch (Exception ex)
  58. {
  59. if (ex is ExceptionEx)
  60. {
  61. throw;
  62. }
  63. else
  64. {
  65. throw ExceptionEx.ThrowServiceException(ex);
  66. }
  67. }
  68. }
  69. /// <summary>
  70. /// 获取Ass_Scrap表实体数据
  71. /// <param name="keyValue">主键</param>
  72. /// <summary>
  73. /// <returns></returns>
  74. public Ass_ScrapEntity GetAss_ScrapEntity(string keyValue)
  75. {
  76. try
  77. {
  78. return this.BaseRepository().FindEntity<Ass_ScrapEntity>(keyValue);
  79. }
  80. catch (Exception ex)
  81. {
  82. if (ex is ExceptionEx)
  83. {
  84. throw;
  85. }
  86. else
  87. {
  88. throw ExceptionEx.ThrowServiceException(ex);
  89. }
  90. }
  91. }
  92. /// <summary>
  93. /// 获取主表实体数据
  94. /// <param name="processId">流程实例ID</param>
  95. /// <summary>
  96. /// <returns></returns>
  97. public Ass_ScrapEntity GetEntityByProcessId(string processId)
  98. {
  99. try
  100. {
  101. return this.BaseRepository().FindEntity<Ass_ScrapEntity>(t => t.SPProcessId == processId);
  102. }
  103. catch (Exception ex)
  104. {
  105. if (ex is ExceptionEx)
  106. {
  107. throw;
  108. }
  109. else
  110. {
  111. throw ExceptionEx.ThrowServiceException(ex);
  112. }
  113. }
  114. }
  115. #endregion
  116. #region 提交数据
  117. /// <summary>
  118. /// 删除实体数据
  119. /// <param name="keyValue">主键</param>
  120. /// <summary>
  121. /// <returns></returns>
  122. public void DeleteEntity(string keyValue)
  123. {
  124. try
  125. {
  126. this.BaseRepository().Delete<Ass_ScrapEntity>(t => t.SPID == keyValue);
  127. }
  128. catch (Exception ex)
  129. {
  130. if (ex is ExceptionEx)
  131. {
  132. throw;
  133. }
  134. else
  135. {
  136. throw ExceptionEx.ThrowServiceException(ex);
  137. }
  138. }
  139. }
  140. /// <summary>
  141. /// 保存实体数据(新增、修改)
  142. /// <param name="keyValue">主键</param>
  143. /// <summary>
  144. /// <returns></returns>
  145. public void SaveEntity(string keyValue, Ass_ScrapEntity entity, List<Ass_ScrapItemEntity> list)
  146. {
  147. var db = this.BaseRepository().BeginTrans();
  148. try
  149. {
  150. if (!string.IsNullOrEmpty(keyValue))
  151. {
  152. entity.Modify(keyValue);
  153. db.Update(entity);
  154. db.Delete<Ass_ScrapItemEntity>(a => a.SPId == keyValue);
  155. foreach (var item in list)
  156. {
  157. item.Create();
  158. item.SPId = keyValue;
  159. db.Insert(item);
  160. }
  161. }
  162. else
  163. {
  164. entity.Create();
  165. db.Insert(entity);
  166. foreach (var item in list)
  167. {
  168. item.Create();
  169. item.SPId = entity.SPID;
  170. db.Insert(item);
  171. }
  172. }
  173. db.Commit();
  174. }
  175. catch (Exception ex)
  176. {
  177. db.Rollback();
  178. if (ex is ExceptionEx)
  179. {
  180. throw;
  181. }
  182. else
  183. {
  184. throw ExceptionEx.ThrowServiceException(ex);
  185. }
  186. }
  187. }
  188. #endregion
  189. #region 扩展数据
  190. public void ModifyStatus(string keyValue, int pastatus, string processId)
  191. {
  192. try
  193. {
  194. var entity = this.BaseRepository().FindEntity<Ass_ScrapEntity>(a => a.SPID == keyValue);
  195. entity.SPProcessId = processId;
  196. entity.SPStatus = pastatus;
  197. this.BaseRepository().Update(entity);
  198. }
  199. catch (Exception e)
  200. {
  201. if (e is ExceptionEx)
  202. {
  203. throw;
  204. }
  205. else
  206. {
  207. throw ExceptionEx.ThrowServiceException(e);
  208. }
  209. }
  210. }
  211. public void ModifyStatusByProcessId(int pastatus, string processId)
  212. {
  213. try
  214. {
  215. var entity = this.BaseRepository().FindEntity<Ass_ScrapEntity>(a => a.SPProcessId == processId);
  216. entity.SPStatus = pastatus;
  217. this.BaseRepository().Update(entity);
  218. if (pastatus == 2)
  219. {
  220. var listScrapItem = this.BaseRepository().FindList<Ass_ScrapItemEntity>(a => a.SPId == entity.SPID);
  221. foreach (var item in listScrapItem)
  222. {
  223. var assInfo = this.BaseRepository().FindEntity<Ass_AssetsInfoEntity>(a => a.AId == item.AAIAId);
  224. var assInfoItem = this.BaseRepository().FindEntity<Ass_AssetsInfoItemEntity>(a => a.AId == item.AAIAId);
  225. if (assInfoItem.AIIsInStorage == true)
  226. {
  227. assInfoItem.AIIsInStorage = false;
  228. assInfo.AStock = assInfo.AStock - 1;
  229. assInfoItem.AIASSState = 1;
  230. this.BaseRepository().Update(assInfoItem);
  231. this.BaseRepository().Update(assInfo);
  232. }
  233. }
  234. }
  235. }
  236. catch (Exception e)
  237. {
  238. if (e is ExceptionEx)
  239. {
  240. throw;
  241. }
  242. else
  243. {
  244. throw ExceptionEx.ThrowServiceException(e);
  245. }
  246. }
  247. }
  248. #endregion
  249. }
  250. }