using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.IBLL.Quality; using WX.CRM.Model.Entity; namespace WX.CRM.BLL.Quality { public class QC_USERTVCHECK_BL : IQC_USERTVCHECK_Q { public List GetUserTVCheck(ref Pager pg, decimal? dismiss, DateTime? dismissStime, DateTime? dismissEtime, DateTime? entryStime, DateTime? entryEtime, DateTime? positveStime, DateTime? positveEtime, DateTime? qualityStime, DateTime? qualityEtime, decimal? status, string groupId, decimal userId) { using (crmContext db = new crmContext()) { var list = db.QC_USERTVCHECK.AsQueryable(); var inneruser_list = db.BAS_INNERUSER.AsQueryable(); list = list.Where(m => m.QUALITYTYPE == 60); if (userId > 0) { inneruser_list = inneruser_list.Where(m => m.PKID == userId); } else if (!string.IsNullOrEmpty(groupId)) { decimal[] _groupids = OperationUtil.ConvertToDecimal(groupId.Split(',')); var userIds = db.BAS_INNERUSERGROUP.Where(m => _groupids.Contains(m.GID.Value)).Select(m => m.INNERUSERID).ToArray(); inneruser_list = inneruser_list.Where(m => userIds.Contains(m.PKID)); } if (dismiss.HasValue) { inneruser_list = inneruser_list.Where(m => m.ISDISMISS == dismiss); } if (dismissStime.HasValue && dismissEtime.HasValue) { inneruser_list = inneruser_list.Where(m => m.DISMISSTIME >= dismissStime && m.DISMISSTIME <= dismissEtime); } if (entryStime.HasValue && entryEtime.HasValue) { inneruser_list = inneruser_list.Where(m => m.ENTRYDATE >= entryStime && m.ENTRYDATE <= entryEtime); } if (positveStime.HasValue && positveEtime.HasValue) { inneruser_list = inneruser_list.Where(m => m.POSITIVETIME >= positveStime && m.POSITIVETIME <= positveEtime); } if (status.HasValue) { list = list.Where(m => m.QUALITYSTATUS == status); } if (qualityStime.HasValue && qualityEtime.HasValue) { list = list.Where(m => m.QUALITYTIME > qualityStime && m.QUALITYTIME < qualityEtime); } var queryDataExt = (from a in list join b in inneruser_list on a.EID equals b.EID select new QC_USERTVCHECK_EXTEND() { EID = b.EID, NAME = b.UNAME, GROUPNAME = a.GROUPNAME, ENTRYDATE = b.ENTRYDATE, POSITIVETIME = b.POSITIVETIME, DISMISSTIME = b.DISMISSTIME, TVID = a.TVID, TVTIME = a.TVTIME, USERNAME = a.USERNAME, FILENAME = a.FILENAME, QUALITYTIME = a.QUALITYTIME, QUALITYSTATUS = a.QUALITYSTATUS, QUALITYMEMO = a.QUALITYMEMO, QUALITYADVISE = a.QUALITYADVISE }); queryDataExt = queryDataExt.OrderByDescending(p => p.QUALITYTIME); PagerUtil.SetPager(ref queryDataExt, ref pg); return queryDataExt.ToList(); } } #region 质检数据更新 public void AddUserChecks(DateTime delCtime, DateTime DelEtime, List models) { using (crmContext db = new crmContext()) { var deleteModels = db.QC_USERTVCHECK.Where(p => p.CHECKDATE > delCtime && p.CHECKDATE < DelEtime); foreach (var delModel in deleteModels) { db.QC_USERTVCHECK.Attach(delModel); db.Entry(delModel).State = EntityState.Deleted; } foreach (var model in models) { model.QUALITYTIME = DateTime.SpecifyKind(model.QUALITYTIME.Value, DateTimeKind.Utc); model.CTIME = DateTime.Now; db.QC_USERTVCHECK.Add(model); } db.SaveChanges(); } } #endregion } }