You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

279 lines
8.3 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. var db = this.BaseRepository().BeginTrans();
  214. try
  215. {
  216. var entity = this.BaseRepository().FindEntity<Ass_ScrapEntity>(a => a.SPProcessId == processId);
  217. entity.SPStatus = pastatus;
  218. db.Update(entity);
  219. if (pastatus == 2)
  220. {
  221. var listScrapItem = db.FindList<Ass_ScrapItemEntity>(a => a.SPId == entity.SPID);
  222. foreach (var item in listScrapItem)
  223. {
  224. var assInfoItem = db.FindEntity<Ass_AssetsInfoItemEntity>(a => a.AIId == item.AAIAId);
  225. var assInfo = db.FindEntity<Ass_AssetsInfoEntity>(a => a.AId == assInfoItem.AId);
  226. if (assInfoItem.AIIsInStorage == true)
  227. {
  228. assInfoItem.AIIsInStorage = false;
  229. if (assInfo != null)
  230. {
  231. assInfo.AStock = assInfo.AStock - 1;
  232. db.Update(assInfo);
  233. }
  234. assInfoItem.AIASSState = 1;
  235. db.Update(assInfoItem);
  236. }
  237. }
  238. }
  239. db.Commit();
  240. }
  241. catch (Exception e)
  242. {
  243. db.Rollback();
  244. if (e is ExceptionEx)
  245. {
  246. throw;
  247. }
  248. else
  249. {
  250. throw ExceptionEx.ThrowServiceException(e);
  251. }
  252. }
  253. }
  254. #endregion
  255. }
  256. }