using System; using System.Collections.Generic; using System.Data; using System.Linq; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.DAL.Qc; using WX.CRM.IBLL.Qc; using WX.CRM.Model.Entity; namespace WX.CRM.BLL.Qc { public class QC_GROUPERSCOREDETAIL_BL : IQC_GROUPERSCOREDETAIL_Q { UserScore_DL userscoreDl = new UserScore_DL(); #region 获取分页数据列表 public List GetList(ref Pager pager, string groupId, decimal? grouperEid, decimal? eid, decimal? scoreNo, decimal? status, DateTime? stime, DateTime? etime) { using (var db = new WX.CRM.Model.Entity.crmContext()) { var queryData = db.QC_GROUPERSCOREDETAIL.AsQueryable(); if (status.HasValue) { queryData = queryData.Where(m => m.STATUS == status); } if (stime.HasValue) { queryData = queryData.Where(m => m.CTIME >= stime.Value); } if (etime.HasValue) { etime = etime.Value.AddDays(1); queryData = queryData.Where(m => m.CTIME < etime.Value); } if (scoreNo.HasValue) { queryData = queryData.Where(m => m.SCORENO == scoreNo.Value); } if (grouperEid.HasValue) { queryData = queryData.Where(m => m.GROUPEREID == grouperEid.Value); } if (eid.HasValue) { queryData = queryData.Where(m => m.INNERUSEREID == eid.Value); } else if (!string.IsNullOrWhiteSpace(groupId)) { decimal[] _groupIds = OperationUtil.ConvertToDecimal(groupId.Split(',')); var userids = db.BAS_INNERUSERGROUP.Where(m => _groupIds.Contains(m.GID.Value)).Select(m => m.INNERUSERID); queryData = queryData.Where(m => userids.Contains(m.INNERUSERID)); } if (pager != null) { if (pager.order == "desc") { switch (pager.sort) { case "CTIME": queryData = queryData.OrderByDescending(c => c.CTIME); break; case "INNERUSERGROUPNAME": queryData = queryData.OrderByDescending(c => c.INNERUSERGROUPNAME); break; case "SCORENO": queryData = queryData.OrderByDescending(c => c.SCORENO); break; default: queryData = queryData.OrderByDescending(m => m.INNERUSERGROUPNAME).OrderByDescending(m => m.SCORENO).OrderByDescending(m => m.CTIME); break; } } else { switch (pager.sort) { case "CTIME": queryData = queryData.OrderBy(c => c.CTIME); break; case "INNERUSERGROUPNAME": queryData = queryData.OrderBy(c => c.INNERUSERGROUPNAME); break; case "SCORENO": queryData = queryData.OrderBy(c => c.SCORENO); break; default: queryData = queryData.OrderBy(m => m.INNERUSERGROUPNAME).OrderBy(m => m.SCORENO).OrderBy(m => m.CTIME); break; } } } else queryData = queryData.OrderByDescending(m => m.INNERUSERGROUPNAME).OrderByDescending(m => m.SCORENO).OrderByDescending(m => m.CTIME); PagerUtil.SetPager(ref queryData, ref pager); return queryData.ToList(); } } #endregion #region 获取汇总数据 /// /// 获取汇总数据 /// /// /// /// /// /// /// /// /// public DataTable GetGrouperScoreDetialCount(string groupId, decimal? grouperEid, decimal? userEId, decimal? scoreNo, decimal? status, DateTime? stime, DateTime? etime) { return userscoreDl.GetGrouperScoreDetialCount(groupId, grouperEid, userEId, scoreNo, status, stime, etime); } #endregion #region 主管评分汇总 /// /// 主管评分汇总 /// /// /// /// /// /// /// /// /// public DataTable GetGrouperScoreCollect(string groupId, decimal? grouperEid, decimal? status, DateTime? stime, DateTime? etime) { return userscoreDl.GetGrouperScoreCollect(groupId, grouperEid, status, stime, etime); } #endregion #region 修改数据 public bool UpdateGrouperScore(List ListModel) { try { using (var db = new WX.CRM.Model.Entity.crmContext()) { foreach (QC_GROUPERSCOREDETAIL model in ListModel) { BAS_INNERUSER userModel = db.BAS_INNERUSER.FirstOrDefault(m => m.EID == model.INNERUSEREID); if (userModel != null) model.INNERUSERID = userModel.PKID; BAS_INNERGROUP groupModel = db.BAS_INNERGROUP.FirstOrDefault(m => m.GNAME == model.INNERUSERGROUPNAME); if (groupModel != null) model.INNERUSERGROUPID = groupModel.GID; BAS_INNERUSER grouperModel = db.BAS_INNERUSER.FirstOrDefault(m => m.EID == model.GROUPEREID); if (userModel != null) model.GROUPERID = userModel.PKID; QC_GROUPERSCOREDETAIL entry = db.QC_GROUPERSCOREDETAIL.FirstOrDefault(m => m.PKID == model.PKID); if (entry != null) db.QC_GROUPERSCOREDETAIL.Remove(entry); db.QC_GROUPERSCOREDETAIL.Add(model); } db.SaveChanges(); } } catch (Exception ex) { throw; } return true; } #endregion /// /// 删除 员工评分明细 数据 /// public void DeleteScoreData(DateTime stime, DateTime etime) { new UserScore_DL().DeleteScoreData("GROUPERSCOREDETAIL", stime, etime); } } }