using Dapper; using Learun.DataBase.Repository; using Learun.Util; using System; using System.Collections.Generic; using System.Data; using System.Text; namespace Learun.Application.TwoDevelopment.AssetManagementSystem { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架 /// Copyright (c) 2013-2018 上海力软信息技术有限公司 /// 创 建:超级管理员 /// 日 期:2019-09-11 10:35 /// 描 述:资产报废 /// public class AssScrapService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.SPID, t.SPNo, t.SPType, t.SPStatus, t.SPEntryDate, t.SPProcessId, t.SPRemark "); strSql.Append(" FROM Ass_Scrap t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["SPType"].IsEmpty()) { dp.Add("SPType", queryParam["SPType"].ToString(), DbType.String); strSql.Append(" AND t.SPType = @SPType "); } if (!queryParam["SPRemark"].IsEmpty()) { dp.Add("SPRemark", "%" + queryParam["SPRemark"].ToString() + "%", DbType.String); strSql.Append(" AND t.SPRemark Like @SPRemark "); } if (!queryParam["SPNo"].IsEmpty()) { dp.Add("SPNo", "%" + queryParam["SPNo"].ToString() + "%", DbType.String); strSql.Append(" AND t.SPNo Like @SPNo "); } return this.BaseRepository().FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取Ass_Scrap表实体数据 /// 主键 /// /// public Ass_ScrapEntity GetAss_ScrapEntity(string keyValue) { try { return this.BaseRepository().FindEntity(keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取主表实体数据 /// 流程实例ID /// /// public Ass_ScrapEntity GetEntityByProcessId(string processId) { try { return this.BaseRepository().FindEntity(t => t.SPProcessId == processId); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 提交数据 /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { try { this.BaseRepository().Delete(t => t.SPID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(string keyValue, Ass_ScrapEntity entity, List list) { var db = this.BaseRepository().BeginTrans(); try { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); db.Update(entity); db.Delete(a => a.SPId == keyValue); foreach (var item in list) { item.Create(); item.SPId = keyValue; db.Insert(item); } } else { entity.Create(); db.Insert(entity); foreach (var item in list) { item.Create(); item.SPId = entity.SPID; db.Insert(item); } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 扩展数据 public void ModifyStatus(string keyValue, int pastatus, string processId) { try { var entity = this.BaseRepository().FindEntity(a => a.SPID == keyValue); entity.SPProcessId = processId; entity.SPStatus = pastatus; this.BaseRepository().Update(entity); } catch (Exception e) { if (e is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(e); } } } public void ModifyStatusByProcessId(int pastatus, string processId) { var db = this.BaseRepository().BeginTrans(); try { var entity = this.BaseRepository().FindEntity(a => a.SPProcessId == processId); entity.SPStatus = pastatus; db.Update(entity); if (pastatus == 2) { var listScrapItem = db.FindList(a => a.SPId == entity.SPID); foreach (var item in listScrapItem) { var assInfoItem = db.FindEntity(a => a.AIId == item.AAIAId); var assInfo = db.FindEntity(a => a.AId == assInfoItem.AId); if (assInfoItem.AIIsInStorage == true) { assInfoItem.AIIsInStorage = false; if (assInfo != null) { assInfo.AStock = assInfo.AStock - 1; db.Update(assInfo); } assInfoItem.AIASSState = 1; db.Update(assInfoItem); } } } db.Commit(); } catch (Exception e) { db.Rollback(); if (e is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(e); } } } #endregion } }