EvaluationNormServices.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Linq.Expressions;
  6. using System.Transactions;
  7. using Bowin.Common.Linq;
  8. using Bowin.Common.Data;
  9. using Bowin.Common.Linq.Entity;
  10. using EMIS.Entities;
  11. using EMIS.ViewModel;
  12. using EMIS.ViewModel.EvaluationManage.EvaluationTable;
  13. using EMIS.DataLogic.EvaluationManage.EvaluationTable;
  14. namespace EMIS.CommonLogic.EvaluationManage.EvaluationTable
  15. {
  16. public class EvaluationNormServices : BaseServices, IEvaluationNormServices
  17. {
  18. public EvaluationNormDAL EvaluationNormDAL { get; set; }
  19. /// <summary>
  20. /// 查询对应的评分标准信息View
  21. /// </summary>
  22. /// <param name="configuretView"></param>
  23. /// <param name="normTypeID"></param>
  24. /// <param name="pageIndex"></param>
  25. /// <param name="pageSize"></param>
  26. /// <returns></returns>
  27. public IGridResultSet<EvaluationNormView> GetEvaluationNormViewGrid(ConfiguretView configuretView, int? normTypeID, int pageIndex, int pageSize)
  28. {
  29. Expression<Func<EM_EvaluationNorm, bool>> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE);
  30. if (normTypeID.HasValue)
  31. {
  32. exp = exp.And(x => x.NormTypeID == normTypeID);
  33. }
  34. var query = EvaluationNormDAL.GetEvaluationNormViewQueryable(exp);
  35. //查询条件
  36. if (!string.IsNullOrEmpty(configuretView.ConditionValue))
  37. {
  38. query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim());
  39. }
  40. return query.OrderBy(x => x.Name).ToGridResultSet<EvaluationNormView>(pageIndex, pageSize);
  41. }
  42. /// <summary>
  43. /// 查询对应的评分标准信息List
  44. /// </summary>
  45. /// <param name="configuretView"></param>
  46. /// <param name="normTypeID"></param>
  47. /// <returns></returns>
  48. public IList<EvaluationNormView> GetEvaluationNormViewList(ConfiguretView configuretView, int? normTypeID)
  49. {
  50. Expression<Func<EM_EvaluationNorm, bool>> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE);
  51. if (normTypeID.HasValue)
  52. {
  53. exp = exp.And(x => x.NormTypeID == normTypeID);
  54. }
  55. var query = EvaluationNormDAL.GetEvaluationNormViewQueryable(exp);
  56. //查询条件
  57. if (!string.IsNullOrEmpty(configuretView.ConditionValue))
  58. {
  59. query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim());
  60. }
  61. return query.OrderBy(x => x.Name).ToList();
  62. }
  63. /// <summary>
  64. /// 查询对应的评分标准明细信息View
  65. /// </summary>
  66. /// <param name="configuretView"></param>
  67. /// <param name="evaluationNormID"></param>
  68. /// <param name="pageIndex"></param>
  69. /// <param name="pageSize"></param>
  70. /// <returns></returns>
  71. public IGridResultSet<EvaluationNormDetailView> GetEvaluationNormDetailViewGrid(ConfiguretView configuretView, Guid? evaluationNormID, int pageIndex, int pageSize)
  72. {
  73. Expression<Func<EM_EvaluationNormDetail, bool>> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE);
  74. exp = exp.And(x => x.EvaluationNormID == evaluationNormID);
  75. var query = EvaluationNormDAL.GetEvaluationNormDetailViewQueryable(exp);
  76. //查询条件
  77. if (!string.IsNullOrEmpty(configuretView.ConditionValue))
  78. {
  79. query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim());
  80. }
  81. return query.OrderBy(x => x.EvaluationNormName).OrderBy(x => x.OrderNo).ToGridResultSet<EvaluationNormDetailView>(pageIndex, pageSize);
  82. }
  83. /// <summary>
  84. /// 查询对应的评分标准明细信息List
  85. /// </summary>
  86. /// <param name="configuretView"></param>
  87. /// <param name="evaluationNormID"></param>
  88. /// <returns></returns>
  89. public IList<EvaluationNormDetailView> GetEvaluationNormDetailViewList(ConfiguretView configuretView, Guid? evaluationNormID)
  90. {
  91. Expression<Func<EM_EvaluationNormDetail, bool>> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE);
  92. exp = exp.And(x => x.EvaluationNormID == evaluationNormID);
  93. var query = EvaluationNormDAL.GetEvaluationNormDetailViewQueryable(exp);
  94. //查询条件
  95. if (!string.IsNullOrEmpty(configuretView.ConditionValue))
  96. {
  97. query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim());
  98. }
  99. return query.OrderBy(x => x.EvaluationNormName).OrderBy(x => x.OrderNo).ToList();
  100. }
  101. /// <summary>
  102. /// 查询对应的评分标准信息EvaluationNormView
  103. /// </summary>
  104. /// <param name="evaluationNormID"></param>
  105. /// <returns></returns>
  106. public EvaluationNormView GetEvaluationNormView(Guid? evaluationNormID)
  107. {
  108. try
  109. {
  110. Expression<Func<EM_EvaluationNorm, bool>> exp = (x => x.EvaluationNormID == evaluationNormID);
  111. var query = EvaluationNormDAL.GetEvaluationNormViewQueryable(exp).SingleOrDefault();
  112. return query;
  113. }
  114. catch (Exception ex)
  115. {
  116. throw new Exception(ex.Message);
  117. }
  118. }
  119. /// <summary>
  120. /// 查询对应的评分标准明细信息EvaluationNormDetailView
  121. /// </summary>
  122. /// <param name="evaluationNormDetailID"></param>
  123. /// <returns></returns>
  124. public EvaluationNormDetailView GetEvaluationNormDetailView(Guid? evaluationNormDetailID)
  125. {
  126. try
  127. {
  128. Expression<Func<EM_EvaluationNormDetail, bool>> exp = (x => x.EvaluationNormDetailID == evaluationNormDetailID);
  129. var query = EvaluationNormDAL.GetEvaluationNormDetailViewQueryable(exp).SingleOrDefault();
  130. return query;
  131. }
  132. catch (Exception ex)
  133. {
  134. throw new Exception(ex.Message);
  135. }
  136. }
  137. /// <summary>
  138. /// 编辑
  139. /// </summary>
  140. /// <param name="evaluationNormView"></param>
  141. /// <param name="detailViewList"></param>
  142. public void EvaluationNormEdit(EvaluationNormView evaluationNormView, IList<EvaluationNormDetailView> detailViewList)
  143. {
  144. try
  145. {
  146. var evaluationNormVerify = EvaluationNormDAL.EvaluationNormRepository.GetList(x => x.EvaluationNormID != evaluationNormView.EvaluationNormID && x.Name == evaluationNormView.Name.Trim()).SingleOrDefault();
  147. if (evaluationNormVerify == null)
  148. {
  149. var newEvaluationNormInList = new List<EM_EvaluationNorm>();
  150. var newEvaluationNormUpList = new List<EM_EvaluationNorm>();
  151. var newEvaluationNormDetailInList = new List<EM_EvaluationNormDetail>();
  152. var evaluationNormIDDelList = new List<Guid?>();
  153. if (evaluationNormView.EvaluationNormID != Guid.Empty)
  154. {
  155. var evaluationNorm = EvaluationNormDAL.EvaluationNormRepository.GetList(x => x.EvaluationNormID == evaluationNormView.EvaluationNormID).SingleOrDefault();
  156. if (evaluationNorm == null)
  157. {
  158. throw new Exception("数据有误,请核查。");
  159. }
  160. else
  161. {
  162. //表示修改
  163. evaluationNorm.Name = evaluationNormView.Name.Trim();
  164. evaluationNorm.NormTypeID = evaluationNormView.NormTypeID;
  165. evaluationNorm.SatisfyWeight = evaluationNormView.SatisfyWeight;
  166. evaluationNorm.Remark = evaluationNormView.Remark;
  167. SetModifyStatus(evaluationNorm);
  168. newEvaluationNormUpList.Add(evaluationNorm);
  169. if (detailViewList != null && detailViewList.Count() > 0)
  170. {
  171. evaluationNormIDDelList.Add(evaluationNorm.EvaluationNormID);
  172. if (evaluationNorm.NormTypeID == (int)EM_EvaluationNormType.CheckBox)
  173. {
  174. foreach (var detailView in detailViewList)
  175. {
  176. var newDetail = new EM_EvaluationNormDetail();
  177. newDetail.EvaluationNormDetailID = Guid.NewGuid();
  178. newDetail.EvaluationNormID = evaluationNorm.EvaluationNormID;
  179. newDetail.OrderNo = detailView.OrderNo;
  180. newDetail.Name = detailView.Name;
  181. newDetail.Weight = detailView.Weight;
  182. newDetail.Remark = detailView.Remark;
  183. SetNewStatus(newDetail);
  184. newEvaluationNormDetailInList.Add(newDetail);
  185. }
  186. }
  187. }
  188. else
  189. {
  190. evaluationNormIDDelList.Add(evaluationNorm.EvaluationNormID);
  191. }
  192. }
  193. }
  194. else
  195. {
  196. //表示新增
  197. var newEvaluationNorm = new EM_EvaluationNorm();
  198. newEvaluationNorm.EvaluationNormID = Guid.NewGuid();
  199. newEvaluationNorm.Name = evaluationNormView.Name.Trim();
  200. newEvaluationNorm.NormTypeID = evaluationNormView.NormTypeID;
  201. newEvaluationNorm.SatisfyWeight = evaluationNormView.SatisfyWeight;
  202. newEvaluationNorm.Remark = evaluationNormView.Remark;
  203. SetNewStatus(newEvaluationNorm);
  204. newEvaluationNormInList.Add(newEvaluationNorm);
  205. if (detailViewList != null && detailViewList.Count() > 0)
  206. {
  207. if (newEvaluationNorm.NormTypeID == (int)EM_EvaluationNormType.CheckBox)
  208. {
  209. foreach (var detailView in detailViewList)
  210. {
  211. var newDetail = new EM_EvaluationNormDetail();
  212. newDetail.EvaluationNormDetailID = Guid.NewGuid();
  213. newDetail.EvaluationNormID = newEvaluationNorm.EvaluationNormID;
  214. newDetail.OrderNo = detailView.OrderNo;
  215. newDetail.Name = detailView.Name;
  216. newDetail.Weight = detailView.Weight;
  217. newDetail.Remark = detailView.Remark;
  218. SetNewStatus(newDetail);
  219. newEvaluationNormDetailInList.Add(newDetail);
  220. }
  221. }
  222. }
  223. }
  224. using (TransactionScope ts = new TransactionScope())
  225. {
  226. UnitOfWork.Delete<EM_EvaluationNormDetail>(x => evaluationNormIDDelList.Contains(x.EvaluationNormID));
  227. UnitOfWork.BulkInsert(newEvaluationNormInList);
  228. UnitOfWork.BulkInsert(newEvaluationNormDetailInList);
  229. if (newEvaluationNormUpList != null && newEvaluationNormUpList.Count() > 0)
  230. {
  231. UnitOfWork.BatchUpdate(newEvaluationNormUpList);
  232. }
  233. ts.Complete();
  234. }
  235. }
  236. else
  237. {
  238. throw new Exception("已存在相同的评分标准信息,请核查。");
  239. }
  240. }
  241. catch (Exception ex)
  242. {
  243. throw new Exception(ex.Message);
  244. }
  245. }
  246. /// <summary>
  247. /// 删除
  248. /// </summary>
  249. /// <param name="evaluationNormIDs"></param>
  250. /// <returns></returns>
  251. public bool EvaluationNormDelete(List<Guid?> evaluationNormIDs)
  252. {
  253. try
  254. {
  255. using (TransactionScope ts = new TransactionScope())
  256. {
  257. UnitOfWork.Delete<EM_EvaluationNormDetail>(x => evaluationNormIDs.Contains(x.EvaluationNormID));
  258. UnitOfWork.Delete<EM_EvaluationNorm>(x => evaluationNormIDs.Contains(x.EvaluationNormID));
  259. ts.Complete();
  260. return true;
  261. }
  262. }
  263. catch (Exception)
  264. {
  265. throw;
  266. }
  267. }
  268. }
  269. }